Trier un tableau en PHP
10 messages
• Page 1 sur 1
- michel.leonard
- WRInaute discret

- Messages: 184
- Inscription: 1 Juin 2010
Trier un tableau en PHP
Bonjour à tous, je vous expose mon léger problème,
ne m'en voulez pas si il y a (probablement une erreur).
J'ai une boucle qui va chercher 4 valeurs (associées entre elles dans ma base de données), et elle crée un tableau comme suit:
et j'aimerai trier ce tableau par taille(en nombre de caractères) des DESCRIPTION croissantes ... en gardant les associations... evidemment...
mais la je lis toutes les fonctions PHP, j'essaye depuis du temps, mais je ne trouve pas, un coup de pouce ?
Merci de m'aider si vous le pouvez
Cordialement. Mike.
ne m'en voulez pas si il y a (probablement une erreur).
J'ai une boucle qui va chercher 4 valeurs (associées entre elles dans ma base de données), et elle crée un tableau comme suit:
- Code: Tout sélectionner
Array (
[0] => TITRE => DESCRIPTION => SOUSTITRES => NUMERO
[1] => TITRE => DESCRIPTION => SOUSTITRES => NUMERO
[2] => TITRE => DESCRIPTION => SOUSTITRES => NUMERO
et ainsi de suite )
et j'aimerai trier ce tableau par taille(en nombre de caractères) des DESCRIPTION croissantes ... en gardant les associations... evidemment...
mais la je lis toutes les fonctions PHP, j'essaye depuis du temps, mais je ne trouve pas, un coup de pouce ?
Merci de m'aider si vous le pouvez
Cordialement. Mike.
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Trier un tableau en PHP
http://php.net/manual/fr/function.array-multisort.php
Principalement l'exemple où il est écrit:
Principalement l'exemple où il est écrit:
Nous avons un tableau de lignes, mais array_multisort() nécessite un tableau de colonnes, donc nous utilisons le code suivant pour obtenir les colonnes et ainsi effectuer le tri.
- Code: Tout sélectionner
<?php
// Obtient une liste de colonnes
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// Trie les données par volume décroissant, edition croissant
// Ajoute $data en tant que dernier paramètre, pour trier par la clé commune
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
- michel.leonard
- WRInaute discret

- Messages: 184
- Inscription: 1 Juin 2010
Re: Trier un tableau en PHP
J'avais déjà lu cet article en plus, je vais le re-relire... Merci de me mettre sur la piste .
En fait dans l'exemple du manuel il n'y à que 2 valeurs associées, c'est probablement pour ca que je bute.
Cordialement
En fait dans l'exemple du manuel il n'y à que 2 valeurs associées, c'est probablement pour ca que je bute.
Cordialement
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Trier un tableau en PHP
Tu vas peut être devoir faire un foreach() sur ton tableau afin d'y ajouter un champ "description_size".
Simple exemple, je ne connais pas ton array:
Ou directement dans la boucle de l'exemple de php.net
Simple exemple, je ne connais pas ton array:
- Code: Tout sélectionner
foreach($array as $k => $a){
$array[$k]['description_size'] = strlen($k['description']);
}
Ou directement dans la boucle de l'exemple de php.net
- michel.leonard
- WRInaute discret

- Messages: 184
- Inscription: 1 Juin 2010
Re: Trier un tableau en PHP
ok , je teste, pour l'aspect pratique du sujet , je te montre mon tableau original
C'est une base de données d'ouvertures d'échecs ou ECO est un code standard , PGN est la notation standard de la partie , Titre est le nom du premier Maître à avoir joué la position et ART est le numéro de l'article que j'ai écrit a ce sujet.
et là ... je réfléchis pour trier selon la taille de $b croissant...
(c'était pour montrer l'aspect pratique).
C'est une base de données d'ouvertures d'échecs ou ECO est un code standard , PGN est la notation standard de la partie , Titre est le nom du premier Maître à avoir joué la position et ART est le numéro de l'article que j'ai écrit a ce sujet.
- Code: Tout sélectionner
$query = "SELECT *
FROM `liste_opens`
WHERE `PGN` LIKE \"%$chercher%\"";
$result = mysql_query($query);
$z = -1;
while ($row = mysql_fetch_assoc($result)) {
$z = $z+1;
$a = $row["ECO"];
$b = $row["PGN"];
$c = $row["TITRE"];
$d = $row["ART"];
$tabl[$z] = "$a => $b => $c => $d";
}
et là ... je réfléchis pour trier selon la taille de $b croissant...
(c'était pour montrer l'aspect pratique).
- michel.leonard
- WRInaute discret

- Messages: 184
- Inscription: 1 Juin 2010
Re: Trier un tableau en PHP
YoyoS a écrit:Et pourquoi pas faire un Order by length(Description) dans ta requête qui construit ce tableau ?
je ne connais pas encore tout, merci , je me renseigne à ce sujet, c'est agréable d'avoir des personnes qui mettent sur de bonnes pistes... amicalement
- michel.leonard
- WRInaute discret

- Messages: 184
- Inscription: 1 Juin 2010
Re: Trier un tableau en PHP
- Code: Tout sélectionner
$query = "SELECT *
FROM `liste_opens`
WHERE `PGN` LIKE \"%$chercher%\"
Order by length(PGN)
";
et cela fonctionne...
MERCI c'était si simple...
10 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- PHP-Trier un tableau
- Comment trier en php un tableau multidimensionnel ?
- Tableau PHP : trier en fonction des valeurs
- [résolu] PHP-Trier un tableau en fonction d'un critére perso
- Trier un tableau par rapport à un autre
- trier les éléments d'un tableau
- PHP: Mélanger un tableau de tableau de manière aléatoire
- [PHP] trier 2 tableaux
- Trier une liste en PHP
- [PHP] Trier par ordre naturel
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
