array_multisort

(PHP 4 , PHP 5)

array_multisort --  Egyszerre több tömböt vagy egy többdimenziós tömböt rendez

Leírás

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

Az array_multisort() arra használható, hogy egyszerre több tömböt vagy egy többdimenzós tömböt rendezzen sorba valamelyik dimenziója szerint. Az asszociatív (string) kulcsokat megőrzi a rendezés során, a numerikus indexeket újraindexeli.

A megadott tömböket egy képzeletbeli, sorok alapján rendezendő táblázat oszlopainak tekinthetők. Ez hasonlít az SQL ORDER BY cikkelyének feladatára. Ez első tömb, ami alapján először rendez. Az ebben a tömbben levő ugyanolyan sorok (elemek) a soron következő tömb szerint lesznek tovább rendezve, és így tovább végig a tömbökön.

Ennek a függvénynek a argumentumlistája kicsit szokatlan, de nagyon rugalmas. A legelső paraméternek mindig tömbnek kell lennie, ezután minden paraméter lehet egy tömb vagy egy a következő rendezést szabályzó jelzőértékek közül.

Sorrendi jelzők:

Rendezési jelzők:

Nem lehet két ugyanolyan típusú jelzőt egymás után megadni. Ezek a jelzők csak a közvetlenül előttük álló tömb szerinti rendezést befolyásolják, minden tömb paraméternél az alapértelmezés lép életbe: SORT_ASC és SORT_REGULAR.

Siker esetén TRUE értékkel tér vissza, ellenkező esetben FALSE értéket ad.

Példa 1. Több tömb alapján történő rendezés

<?php
$ar1
= array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);
?>

A rendezés után a $ar1 és a $ar2: (A második tömb elemei az első tömb megegyező elemeinek megfelelően (100, 100) szintén rendezettek.)

Array // $ar1
(
    [0] => 10
    [1] => a
    [2] => 100
    [3] => 100
)
Array // $ar2
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 3
)

Példa 2. Többdimenziós tömbök rendezése

<?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);
?>

A rendezés után a $ar tömb: (Az első szövegként növekvő sorrendbe rendezve, a másodikban számként csökkenő sorrendbe rendezve.)

Array
(
    [0] => Array
        (
            [0] => 10
            [1] => 100
            [2] => 100
            [3] => a
        )

    [1] => Array
        (
            [0] => 1
            [1] => 3
            [2] => 2
            [3] => 1
        )

)