Matricele sunt o structură de date sofisticată în PHP care permite dezvoltatorilor să stocheze și să gestioneze numeroase valori într-o singură variabilă. PHP include o colecție de metode pentru sortarea și manipularea matricelor în plus față de operațiile fundamentale ale matricei. În această postare, ne vom uita la cele mai comune funcții de sortare a matricelor PHP disponibile în PHP 8.
Funcții de sortare
PHP oferă mai multe funcții încorporate pentru sortarea matricelor, inclusiv:
fel()
fel() aranjează membrii matricei în ordine crescătoare. Dacă există un singur element în matrice, acesta returnează aceeași matrice. Revine adevărat când are succes. Se întoarce fals în toate celelalte circumstanțe.
$numbers = array(4, 8, 12, 16, 20);
sort($numbers);
print_r($numbers); // [4, 8, 12, 16, 20]
rsort()
rsort()
funcția este inversul sort()
funcţie. Sortează elementele unui tablou în ordine descrescătoare.
Copy code$numbers = array(4, 16, 12, 20, 11);
rsort($numbers);
print_r($numbers); // [20, 16, 12, 11, 4]
asort()
sortiment() folosește valori pentru a sorta membrii unui tablou asociativ în ordine crescătoare.
$fruits = array("apple" => "1", "pineapple" => "2", "orange" => "3");
asort($fruits);
print_r($fruits); // ["apple" => "1", "orange" => "3", "pineapple" => "2"]
ksort()
ksort()
funcția sortează elementele unui tablou asociativ în ordine crescătoare în funcție de chei.
$fruits = array("apple" => "1", "pineapple" => "2", "orange" => "3");
ksort($fruits);
print_r($fruits); // ["apple" => "1", "orange" => "3", "pineapple" => "2"]
arsort()
arsort()
funcția sortează elementele unui tablou asociativ în ordine descrescătoare în funcție de valori.
$fruits = array("apple" => "1", "pineapple" => "2", "grapefruit" => "1");
arsort($fruits);
print_r($fruits); // ["grapefruit" => "1", "pineapple" => "2", "apple" => "1"]
Alte funcții de sortare a matricei
În plus față de arsort(), PHP oferă și alte câteva funcții pentru sortarea matricelor, cum ar fi:
- krsort(): sortează un tablou asociativ în ordine descrescătoare în funcție de cheile sale
- usort(): sortează o matrice folosind o funcție de comparare definită de utilizator
- uasort(): sortează o matrice asociativă folosind o funcție de comparare definită de utilizator, păstrând perechile cheie-valoare
- uksort(): sortează un tablou asociativ
Q & A
Î: Care este diferența dintre funcțiile „sort” și „rsort” din PHP pentru matrice?
R: Funcția „sort” sortează elementele unui tablou în ordine crescătoare, în timp ce funcția „rsort” sortează elementele în ordine descrescătoare.
Î: Cum diferă funcția „sortare” de funcția „sortare”?
R: Funcția „asort” sortează elementele matricei în funcție de valorile lor, păstrând în același timp relația cheie-valoare. Funcția „sortare”, pe de altă parte, sortează elementele în funcție de valorile lor, dar reordonează cheile și poate perturba relația dintre chei și valori.
Î: Puteți explica funcția „ksort” în PHP?
R: Funcția „ksort” sortează membrii matricei în funcție de cheile lor. Articolele sunt reordonate în ordine crescătoare pe baza valorilor cheie.
Î: Există o modalitate de a sorta o matrice fără a ține seama de majuscule și minuscule?
R: Da, puteți utiliza funcția „sortare” sau „asortare” cu semnalizarea SORT_FLAG_CASE. De exemplu: „sort($array, SORT_FLAG_CASE);”
Î: Puteți folosi funcția „usort” pentru a sorta o serie de obiecte?
R: Da, prin furnizarea unei funcții de apel invers care compară elementele, metoda „usort” poate fi utilizată pentru a sorta o serie de obiecte. Pentru a identifica ordinea componentelor, funcția de apel invers ar trebui să returneze un număr întreg negativ, zero sau pozitiv.
Î: Puteți sorta o matrice asociativă după valoare fără a schimba cheile?
R: Da, puteți folosi funcția „asort” pentru a sorta o matrice asociativă după valoare fără a schimba cheile.
Exerciții:
- Cum poți sorta o matrice în ordine crescătoare?
- Cum poți sorta o matrice în ordine descrescătoare?
- Cum puteți sorta o matrice de tablouri asociative după valoarea uneia dintre chei?
- Cum poți sorta o serie de obiecte după una dintre proprietățile lor?
- Scrieți un script care sortează o matrice de șiruri de caractere în ordine alfabetică, fără a ține seama de majuscule și minuscule.
Răspunsuri:
- sortare($array);
- rsort($array);
- usort($array, function($a, $b) { return $a['cheie'] <=> $b['cheie']; });
- usort($array, function($a, $b) { return $a->proprietate <=> $b->proprietate; });
- usort($array, 'strcasecmp');
Funcții oficiale ale matricelor PHP referință.