array_multisort

array_multisort -- Tri multi-dimensionnel

Description

boolean array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]])

array_multisort( ) sert à trier simultanément plusieurs tableaux , ou bien à trier un tableau multi-dimensionnel , suivant l'une ou l 'autre de ses dimensions . Les clés sont préservées .

Les tableaux passés en arguments sont traités comme les colonnes d' une table , triées par lignes (un peu comme la clause SQL ORDER BY ) . Le premier tableau est la clé primaire de tri . Les valeurs du premier tableau qui sont égales , sont triées grâce au tableau suivant , et ainsi de suite.. .

La structure des arguments de array_multisort( ) est un peu inhabituelle , mais elle est plus souple . Le premier argument DOIT être un tableau , mais les arguments suivants peuvent être des tableaux ou une ou deux options de tri , prises dans les valeurs suivantes :

Options de tri :



Options de type de tri :



Une seule option de tri de chaque type peut être appliquée après un tableau . Une option ne s' applique qu 'au tableau précédent . Tous les autres sont mis par défaut à SORT_ASC et SORT_REGULAR .

array_multisort( ) retourne TRUE en cas de succès , FALSE sinon .

Exemple 1 . Trier plusieurs tableaux

 
?php

 
$ar1

 
=

 
array

 
(

 
"10"

 
,

 
100

 
,

 
100

 
,

 
"a")

 
;

 
$ar2

 
=

 
array

 
(1

 
,

 
3

 
,

 
"2"

 
,

 
1)

 
;

 
array_multisort

 
($ar1

 
,

 
$ar2)

 
;

 
?





Dans cet exemple , après le tri , le premier tableau contient 10 , " a" , 100 , 100 ; Le deuxième tableau contient 1 , 1 , "2 " , 3 . Les entrées du second tableau correspondant aux valeurs jumelles du premier tableau ( 100 et 100 ) , sont aussi triées .

Exemple 2 . Classer un tableau multidimensionnel

 
?php

 
$ar

 
=

 
array

 
(

 
array

 
("10"

 
,

 
100

 
,

 
100

 
,

 
"a")

 
,

 
array

 
(1

 
,

 
3

 
,

 
"2"

 
,

 
1))

 
;

 
array_multisort

 
($ar[0]

 
,

 
SORT_ASC

 
,

 
SORT_STRING

 
,

 
$ar[1]

 
,

 
SORT_NUMERIC

 
,

 
SORT_DESC)

 
;

 
?





Dans cet exemple , après le tri , le premier tableau contient 10 , 100 , 100 , " a " (tri alphabétique , ordre croissant) ; Le deuxième tableau contient 1 , 3 , "2" , 1 (tri numérique , ordre décroissant ) .