array_multisort
(PHP 4, PHP 5)
array_multisort — Trie les tableaux multidimensionnels
Description
bool array_multisort
( array
&$arr
[, mixed $arg
= SORT_ASC
[, mixed $arg
= SORT_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 (chaîne de caractères) seront maintenues, mais les clés numériques seront réindexées.
Liste de paramètres
-
arr
-
Un tableau à 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) avecSORT_STRING
ouSORT_NATURAL
pour trier les chaînes sans tenir compte de la casse
-
-
...
-
D'autres arguments.
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Historique
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 .
|
Exemples
Exemple #1 Trier plusieurs tableaux
<?php $ar1 = array(10, 100, 100, 0); $ar2 = array(1, 3, 2, 4); array_multisort($ar1, $ar2); var_dump($ar1); var_dump($ar2); ?>
<?php $ar = array( array("10", 11, 100, 100, "a"), array( 1, 2, "2", 3, 1) ); array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1], SORT_NUMERIC, SORT_DESC); var_dump($ar); ?>
<?php $data[] = array('volume' => 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); ?>
<?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);
?>
<?php $array = array('Alpha', 'atomic', 'Beta', 'bank'); $array_lowercase = array_map('strtolower', $array); array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array); print_r($array); ?>
L'exemple ci-dessus va afficher :
Array ( [0] => Alpha [1] => atomic [2] => bank [3] => Beta )
Voir aussi
- usort() - Trie un tableau en utilisant une fonction de comparaison
- Les fonctions de tri des tableaux