array_multisort

(PHP 4, PHP 5)

array_multisortTrie 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) avec SORT_STRING ou SORT_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

LoadingChargement en cours