Trier un tableau multidimensionnel selon 2 colonnes
Résolu
scouiky
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
scouiky Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
scouiky Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà plusieurs heures que je suis bloqué. Je suis en première année de BTS informatique, autant dire que je suis pas un as :P.
Donc voilà, j'ai un tableau de données, qui représente des boites.
Je le remplis avec mes boites issues de ma bdd.
je voudrais ensuite pouvoir trier $tab selon longueur et largeur DESC, comme on aurait fait en SQL
Seulement voilà, je suis bloqué. Mais bloqué bloqué :P
Je vous en prie, sortez-moi de là =D
Voilà plusieurs heures que je suis bloqué. Je suis en première année de BTS informatique, autant dire que je suis pas un as :P.
Donc voilà, j'ai un tableau de données, qui représente des boites.
$tab = array( array('numBoite' => ..., 'longueur' => ..., 'largeur' => ... ) );
Je le remplis avec mes boites issues de ma bdd.
je voudrais ensuite pouvoir trier $tab selon longueur et largeur DESC, comme on aurait fait en SQL
SELECT * FROM tab ORDER BY longueur DESC AND largeur DESC
Seulement voilà, je suis bloqué. Mais bloqué bloqué :P
Je vous en prie, sortez-moi de là =D
A voir également:
- Tableau 2 colonnes
- Tableau word - Guide
- Faire 2 colonnes sur word - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Tableau ascii - Guide
- Formule moyenne excel plusieurs colonnes - Guide
3 réponses
Salut, pour classer un tableau à plusieurs dimensions dans l'ordre DESC, il s'agit de la commande array_multisort($var_tab, SORT_DESC), l'ordre se fera en fonction de la valeur de la première colonne affichée.
Mais puisque tu dis Je le remplis avec mes boites issues de ma bdd. , pourquoi justement, tu ne fais pas ta requête
Mais puisque tu dis Je le remplis avec mes boites issues de ma bdd. , pourquoi justement, tu ne fais pas ta requête
SELECT * FROM tab ORDER BY longueur DESC AND largeur DESC?
Euh ouais... ouais ouais. Mais ouais t'as carrément raison, c'est tout bête, et je sais pas pourquoi je cherche à faire comme ça depuis ce matin.
Bah merci de m'ouvrir les yeux. Purée, je vais me faire un café.
Merci hein, merci mille fois ^^ je vais suppr ce topic maintenant :)
Bah merci de m'ouvrir les yeux. Purée, je vais me faire un café.
Merci hein, merci mille fois ^^ je vais suppr ce topic maintenant :)
Pour ceux qui passent par là, j'ai trouvé un truc bien sympas qui vient de https://www.php.net/ksort ça ma bien aidé pour trier un tableau selon une colonne.
Même si ça ne répond pas vraiment au topic (ça trie sur 1 colonne), je pense qu'il y a moyen de bidouiller le truc. A voir donc, je ne m'y suis pas penché.
Même si ça ne répond pas vraiment au topic (ça trie sur 1 colonne), je pense qu'il y a moyen de bidouiller le truc. A voir donc, je ne m'y suis pas penché.
A nice way to do sorting of a key on a multi-dimensional array without having to know what keys you have in the array first: <?php $people = array( array("name"=>"Bob","age"=>8,"colour"=>"red"), array("name"=>"Greg","age"=>12,"colour"=>"blue"), array("name"=>"Andy","age"=>5,"colour"=>"purple")); var_dump($people); $sortArray = array(); foreach($people as $person){ foreach($person as $key=>$value){ if(!isset($sortArray[$key])){ $sortArray[$key] = array(); } $sortArray[$key][] = $value; } } $orderby = "name"; //change this to whatever key you want from the array array_multisort($sortArray[$orderby],SORT_DESC,$people); var_dump($people); ?> Output from first var_dump: [0]=> array(3) { ["name"]=> string(3) "Bob" ["age"]=> int(8) ["colour"]=> string(3) "red" } [1]=> array(3) { ["name"]=> string(4) "Greg" ["age"]=> int(12) ["colour"]=> string(4) "blue" } [2]=> array(3) { ["name"]=> string(4) "Andy" ["age"]=> int(5) ["colour"]=> string(6) "purple" } } Output from 2nd var_dump: array(3) { [0]=> array(3) { ["name"]=> string(4) "Greg" ["age"]=> int(12) ["colour"]=> string(4) "blue" } [1]=> array(3) { ["name"]=> string(3) "Bob" ["age"]=> int(8) ["colour"]=> string(3) "red" } [2]=> array(3) { ["name"]=> string(4) "Andy" ["age"]=> int(5) ["colour"]=> string(6) "purple" } There's no checking on whether your array keys exist, or the array data you are searching on is actually there, but easy enough to add.