PHP kézikönyv
Előző |  | Következő

# 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:

- `SORT_ASC` - növekvő sorrendbe rendez

- `SORT_DESC` - csökkenő sorrendbe rendez

Rendezési jelzők:

- `SORT_REGULAR` - megszokott módon hasonlítja össze az elemeket

- `SORT_NUMERIC` - számként hasonlítja össze az elemeket

- `SORT_STRING` - szövegként hasonlítja össze az elemeket

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
            )

    )

Előző | Tartalom | Következő
array_merge | Fel | array_pad