PHP sortare matrice

PHP sortare matrice

Am scris deja despre matrice. Matricele sunt foarte convenabile pentru procesarea cantități mari de informații. Există mai multe caracteristici pentru lucrul confortabil cu ei. În special, astăzi ne vom concentra pe de sortare. Nimic nou, nu voi deschide, trebuie doar să vă prezint cele mai necesare pentru codificare de zi cu zi.

Sortarea tablouri indexate: sortare () și rsort ()

sort () funcție sortează valorile într-o matrice indexată în ordine crescătoare. Aceasta înseamnă că un vine înainte Z, 0 -Înainte 9. Majusculele litere mici litere la numere. De exemplu:

rsort () - acest tip () invers:

Toate sortare-funcție returnează true în caz de succes și fals pe bummer)

Sortarea tablouri asociative: asort () și arsort ()

sortare () și rsort () sunt foarte bune pentru tablouri indexate, care nu trebuie să vă faceți griji cu privire la cheia de conectare și valoarea. Pot primi neașteptate) De exemplu:

Se poate observa că a existat o confuzie, iar structura originală «titlu», «director», «an» și «minute» schimbat.

Dacă doriți să sortați o matrice asociativă pe cheia primară, utilizați asort () și arsort () Aceste funcții permit conectarea chei și valori

Pentru creșterea ordinea de sortare este funcția de responsabil asort ():

Sortarea tablouri asociative de cheie: ksort () și krsort ()

ksort () ascendentă valoare sortare cheie. krsort () - Descendent. Ca asort () cu arsort (), această funcție menține legătura dintre valoarea cheii. exemplu:

Sortarea complexă și multidimensională matrice array_multisort ()

Foarte puternic Funcția array_multisort () poate sorta o matrice multidimensionale. menținând legătura dintre matricele.
În general, acum totul se vedea:

Sortarea matrice complexe

Sorteaza folosind array_multisort (), specifica doar acele matrici care au nevoie de obratotat:

Acest cod afișează:

Array ([0] => Alfred Hitchcock [1] => Martin Scorsese [2] => Stanley Kubrick)
Array ([0] => Fereastra din spate [1] => Mean Streets [2] => Full Metal Jacket)
Array ([0] => 1954 [1] => 1973 [2] => 1987)

Primul array_multisort () sortează valorile din directori de $ în ordine crescătoare, apoi celelalte două, de asemenea.

Ce se întâmplă dacă vrem să sortați, de exemplu, pentru primul «titlu». Doar a prezentat o listă de titluri $:

Sortare după ... mai mult ...

În cazul în care prima matrice conține o anumită cantitate id-numere, apoi array_multisort) soiuri (
la aceste valori ale primei matrice, și apoi - al doilea, și așa mai departe. exemplu:

Acest cod dă următorul text - act de faptul că «A Clockwork Orange» la «Full Metal Jacket»:

Array ([0] => Alfred Hitchcock [1] => Martin Scorsese [2] => Stanley Kubrick [3] => Stanley Kubrick)
Array ([0] => Fereastra din spate [1] => Mean Streets [2] => Portocala [3] => Full Metal Jacket)
Array ([0] => 1954 [1] => 1973 [2] => 1971 [3] => 1987)

Schimba ordinea de sortare

Puteți sări peste (opțional) flag-argument după argument matrice pentru a schimba ordinea de sortare:

SORT_ASC
Triere crescătoare
SORT_DESC
Triere descrescătoare

Există și alte steaguri care pot fi utilizate în array_multisort () - și alte funcții de sortare. de fapt, pentru a controla mijloacele de sortare. Mai multe despre sort () pot fi găsite în manualul PHP.

Apoi am sorta directori $ ascendent, apoi descendent $ titlurile:

Iată ce sa întâmplat: rețineți că «Full Metal Jacket» acum înainte «A Clockwork Orange»:


Array ([0] => Alfred Hitchcock [1] => Martin Scorsese [2] => Stanley Kubrick [3] => Stanley Kubrick)
Array ([0] => Fereastra din spate [1] => Mean Streets [2] => Full Metal Jacket [3] => A Clockwork Orange)
Array ([0] => 1954 [1] => 1973 [2] => 1987 [3] => 1971)

Sortarea matrice multi-dimensionale

Sortarea prin array_multisort () trece prin primul element al fiecărei matrice. Dacă două valori sunt aceleași, sortirvka merge pe elementul și TP 2y.

Acesta este un exemplu. care arată cum funcționează
Sortarea este de director, apoi de titlu, apoi pe an:


mulțime
(
[0] => Array
(
[Director] => Alfred Hitchcock
[Titlu] => Fereastra din spate
[Anul] => 1954
)

[1] => Array
(
[Director] => Martin Scorsese
[Titlu] => Mean Streets
[Anul] => 1973
)

[2] => Array
(
[Director] => Stanley Kubrick
[Titlu] => Portocala
[Anul] => 1971
)

[3] => Array
(
[Director] => Stanley Kubrick
[Titlu] => Full Metal Jacket
[Anul] => 1987
)

După cum puteți vedea, array_multisort () matrice otsortirval de director. Când numele regizorului repetat, ( «Stanley Kubrick»), sortare a continuat din titlu.

Pentru a otsortrovat în ordine inversă, selectați SORT_DESC-flag ca argument al doilea array_multisort (). Simplu!

In acest tutorial, ne-am uitat la un simplu PHP-funcții pentru matrice sortrovki:

* Sort () și rsort () pentru sortrovki indexate matrice
* Asort () și arsort () pentru tablouri sortrovki asotsiativnyh
* Ksort () și krsort () pentru matrice assotsiativnh sortrovki de cheie
* Array_multisort () pentru sortare pentru sortarea matrice complexe și multidimensionale

matrice-sortare PHP sunt foarte puternice și ușor, puteți sorta, și cât de repede doriți). Doar aici am studiat deja 13 funcții! Pentru a vedea mai multe, consultați manualul

Aboneaza-te la directorul de bloguri RSS

Cititorii dori, de asemenea: