Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.73 ">

array_multisort

(PHP 4 )

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 :

  • SORT_ASC - Tri en ordre ascendant

  • SORT_DESC - Tri en ordre descendant

Options de type de tri:

  • SORT_REGULAR - Comparaison normale des valeurs

  • SORT_NUMERIC - Comparaison numérique des valeurs

  • SORT_STRING - Comparaison alphabétique des valeurs

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).