array_multisort Trie les tableaux multidimensionnels &reftitle.description; boolarray_multisort arrayarr mixedargSORT_ASC mixedargSORT_REGULAR mixed... array_multisort sert à trier simultanément plusieurs tableaux, ou bien à trier un tableau multidimensionnel, suivant l'une ou l'autre de ses dimensions. Les clés associatives (&string;) seront maintenues, mais les clés numériques seront réindexées. &reftitle.parameters; arr Un &array; à trier. arg Optionnellement, d'autres tableaux, ou des options de tri pour l'argument précédent : Type d'options de tri : SORT_ASC - tri des éléments par ordre croissant. SORT_DESC - tri des éléments par ordre décroissant. SORT_REGULAR - compare les éléments normalement (pas de changement de type) SORT_NUMERIC - compare les éléments numériquement SORT_STRING - compare les éléments sous forme de chaînes de caractères SORT_LOCALE_STRING - compare les éléments sous forme de chaînes de caractères, en se basant sur la locale courante. La fonction utilise les locales, et elles peuvent être modifiées en utilisant la fonction setlocale SORT_NATURAL - compre les éléments sous forme de chaînes de caractères, en utilisant le "tri naturel", comme le fait la fonction natsort SORT_FLAG_CASE - peut être combiné (avec le mot clé OR) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse ... D'autres arguments. &reftitle.returnvalues; &return.success; &reftitle.changelog; &Version; &Description; 5.4.0 Les options SORT_NATURAL et SORT_FLAG_CASE ont été ajoutées comme options possibles pour l'argument arg. 5.3.0 L'option SORT_LOCALE_STRING a été ajoutée comme option possible pour l'argument arg. &reftitle.examples; Trier plusieurs tableaux ]]> Dans cet exemple, après le tri, le premier tableau contient 0, 10, 100, 100. Le deuxième tableau contient 4, 1, 2, 3. Les entrées du second tableau correspondant aux valeurs jumelles du premier tableau (100 et 100), sont aussi triées. int(0) [1]=> int(10) [2]=> int(100) [3]=> int(100) } array(4) { [0]=> int(4) [1]=> int(1) [2]=> int(2) [3]=> int(3) } ]]> Trier un tableau multidimensionnel ]]> Dans cet exemple, après le tri, le premier tableau contient "10", 100, 100, 11, "a" (tri alphabétique, ordre croissant); Le deuxième tableau contient 1, 3, "2", 2, 1 (tri numérique, ordre décroissant). array(5) { [0]=> string(2) "10" [1]=> int(100) [2]=> int(100) [3]=> int(11) [4]=> string(1) "a" } [1]=> array(5) { [0]=> int(1) [1]=> int(3) [2]=> string(1) "2" [3]=> int(2) [4]=> int(1) } } ]]> Classer les résultats d'une base de données Dans cet exemple, chaque élément du tableau data représente une ligne de la table. Ce type de données est typique d'un enregistrement de base de données. Exemple de données : Les données sont sous forme de tableau, appelé data. Cela est généralement le résultat, par exemple, de la fonction mysql_fetch_assoc. 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7); ?> ]]> Dans cet exemple, nous allons trier la colonne volume par ordre décroissant, et la colonne edition par ordre croissant. 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. $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); ?> ]]> Le jeu d'enregistrement est maintenant trié et ressemble à cela : Tri non sensible à la casse SORT_STRING et SORT_REGULAR sont sensibles à la casse, les chaînes de caractères commençant avec une lettre en majuscule viendront avant les chaînes de caractères commençant par une lettre en minuscule. Pour effectuer une recherche insensible à la casse, effectuez le tri sur une copie minuscule des colonnes du tableau original. ]]> &example.outputs; Alpha [1] => atomic [2] => bank [3] => Beta ) ]]> &reftitle.seealso; usort &seealso.array.sorting;