Sortare PHP Array și funcții utile

P

În tutorialul anterior despre PHP Arrays. Am învățat despre declararea și repetarea matricelor indexate, asociative și multidimensionale. Acum suntem în măsură să aprofundăm în PHP Array Sorting. Pe lângă aceasta, vom lucra și cu funcții utile care fac foarte ușor lucrul cu matrice.

Funcții de sortare matrice în PHP

În PHP 8, avem următoarele funcții pentru a sorta o matrice.

Numele funcțieiSortați după ordine
fel() Ordine crescătoare
rsort()Ordine descrescatoare
asort()Tablouri asociative în ordine crescătoare, în funcție de valoare
ksort()Tablouri asociative în ordine crescătoare, în funcție de cheie
arsort()Ordine descendenta, in functie de valoare
krsort()Ordine descendentă, conform cheii
Tabel cu funcții de sortare a matricelor în PHP

1. Sortare(matrice, tip_sort)

Funcția de sortare aranjează elementele unui tablou în ordine crescătoare (de jos în sus). Dacă matricea conține un singur element, va returna aceeași matrice. Se întoarce adevărat în caz de succes și fals în caz de eșec.

De exemplu

<?php
$num = array(4, 6, 2, 12, 11);
sort($num);
?>

2. rSort(array, sort_type)

rSort este inversul funcției de sortare. Aranjează elementele unui tablou în formă descendentă (de la sus la mai jos). Dacă matricea conține un singur element, returnează aceeași matrice.

<?php
$num=array(4,16,12,20,11);
rsort($num);
?>

3. asort (matrice, sort_type)

Funcția asort aranjează elementele unui tablou asociativ în ordine crescătoare în funcție de valoarea cheilor. Dacă matricea constă dintr-o singură pereche cheie și valoare, returnează aceeași matrice.

De exemplu

<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
asort($age);
?>

4. ksort(matrice, sort_type)

Funcția ksort aranjează și elementele unui tablou asociativ în ordine crescătoare, dar în funcție de chei. Dacă matricea constă dintr-o singură pereche cheie și valoare, returnează aceeași matrice.

De exemplu

<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
ksort($age);
?>

Al doilea parametru din funcțiile de sortare este sort_type. Următoarele opțiuni sunt disponibile. Opțiunile decid cum se compară elementele matricei.

5. arsort(array, sort_type)

Funcția asort aranjează elementele unui tablou asociativ în ordine descrescătoare în funcție de valori. Dacă matricea constă dintr-o singură pereche cheie și valoare, returnează aceeași matrice.

De exemplu

<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
asort($age);
?>

6. krsort(array, sort_type)

Funcția krsort aranjează și elementele unui tablou asociativ în ordine descrescătoare dar în funcție de chei. Dacă matricea constă dintr-o singură pereche cheie și valoare, returnează aceeași matrice.

De exemplu

<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
ksort($age);
?>

Al doilea parametru din funcțiile de sortare este sort_type. Următoarele opțiuni sunt disponibile. Opțiunile decid cum se compară elementele matricei.

Tip de sortareDescriere
0 = SORT_REGULARMod implicit. Comparați articolele în mod normal (nu schimbați tipurile)
1 = SORT_NUMERIC Comparați elementele numeric
2 = SORT_STRINGCompara articolele ca șiruri
3 = SORT_LOCALE_STRINGComparați elementele ca șiruri de caractere, pe baza localizării curente
4 = SORT_NATURALCompară articolele ca șiruri folosind ordinea naturală
5 = SORT_FLAG_CASE
Opțiuni de sortare matrice în funcția sort și rsort

În afară de aceste funcții de sortare de bază și încorporate, utilizatorul își poate defini și propria funcție de sortare în PHP. Deci, în această secțiune, veți afla despre funcția usort, uasort și uksort în PHP.

usort(array, my_sorting_function)

funcția usort acceptă doi parametri. Primul parametru este matricea de sortat, iar al doilea parametru este funcția definită de utilizator de sortat.

De exemplu

<?php
function my_sort($a,$b)
{
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}

$a=array(4,2,8,6);
usort($a,"my_sort");
?>

uasort(array, user_define_function)

Sortați o matrice sau o matrice asociativă în funcție de funcția definită de utilizator. Funcția uasort realizează sortarea în funcție de valoarea tabloului asociativ. Pentru chei, avem funcția uksort, care este dată în continuare.

De exemplu

<?php
function my_sort($a,$b)
{
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}

$arr=array("a"=>4,"b"=>2,"c"=>8,"d"=>6);
uasort($arr,"my_sort");
?>

uksort(array, user_defined_function)

Sortați o matrice asociativă folosind o funcție definită de utilizator. uksort realizează sortarea în funcție de cheile matricei asociative.

De exemplu

<?php
function my_sort($a,$b)
{
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}

$arr=array("a"=>4,"b"=>2,"c"=>8,"d"=>6);
uksort($arr,"my_sort");
?>

Funcții utile matrice în PHP

sumă_matrice funcția returnează suma elementelor matricei. Această funcție acceptă atât matrice indexată, cât și matrice asociativă. În cazul unui tablou asociativ, returnează suma valorilor.

De exemplu

<?php
$a=array(5,15,25);
echo array_sum($a);
?>

array_splice funcția elimină elementele specificate din matrice și le înlocuiește cu elemente noi. Rețineți că funcția array_splice nu păstrează cheile din valoarea returnată.

De exemplu

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
print_r(array_splice($a1,0,2,$a2));
?>

Funcția array_search pur și simplu caută într-o matrice elementul. Dacă elementul este găsit, returnează cheia acestuia. Această funcție acceptă trei parametri.

array_search(valoare, matrice, strict)

Al treilea parametru strict poate fi adevărat sau fals. Totuși, dacă este adevărat, valoarea de căutat în matrice trebuie să fie de același tip de date. Adică șirul „5” și numărul 5 nu sunt aceleași în cazul strict = true. Cu toate acestea, dacă strict este setat la false, array_search va considera „5” și 5 la fel.

De exemplu

<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);
?>

array_reverse returnează un tablou având elemente în ordine inversă. Dacă al doilea parametru este setat la adevărat, cheile sunt păstrate în ieșire.

De exemplu

<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));
?>

array_push(matrice, valoare1, valoare2,...) funcția împinge elemente în matrice. Puteți împinge mai multe elemente într-o matrice specificându-le în parametrul funcției, începând cu al doilea parametru. H Fiecare valoare este separată prin virgulă, iar valoarea poate fi, de asemenea, o matrice.

De exemplu

<?php
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
?>

array_pop() elimină ultimul element al matricei.

De exemplu

<?php
$a=array("red","green","blue");
array_pop($a);
print_r($a);
?>

Pentru referința oficială de sortare a matricei PHP 8, faceți clic aici.

Adaugă comentariu

Rețeaua de tutori

Învață PHP de la A la Z