PHP Array Sortiranje in uporabne funkcije

P

V prejšnji vadnici o nizih PHP. Spoznali smo deklariranje in ponavljanje indeksiranih, asociativnih in večdimenzionalnih nizov. Zdaj smo v položaju, da se poglobimo v PHP Array Sorting. Poleg tega bomo delali tudi s uporabnimi funkcijami, ki resnično olajšajo delo z nizi.

Funkcije razvrščanja matrik v PHP

V PHP 8 imamo naslednje funkcije za razvrščanje matrike.

Ime funkcijeRazvrsti po vrstnem redu
razvrsti () rastoče urejeno
rsort()padajočem vrstnem redu
razvrsti ()Asociativni nizi v naraščajočem vrstnem redu, glede na vrednost
ksort()Asociativni nizi v naraščajočem vrstnem redu, glede na ključ
arsort()Padajoče, glede na vrednost
krsort()Padajoče, glede na ključ
Tabela funkcij razvrščanja matrik v PHP

1. Razvrsti (matrika, vrsta_vrste)

Funkcija razvrščanja razporedi elemente matrike v naraščajočem vrstnem redu (od nižje do višje). Če matrika vsebuje samo en element, bo vrnila isto matriko. Vrne true v primeru uspeha in false v primeru neuspeha.

Na primer

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

2. rSort(matrika, vrsta_vrste)

rSort je obratna funkcija razvrščanja. Elemente matrike razporedi v padajoči obliki (od višje na nižje). Če matrika vsebuje samo en element, vrne isto matriko.

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

3. razvrsti (matrika, vrsta_vrste)

funkcija asort razporedi elemente asociativnega niza v naraščajočem vrstnem redu glede na vrednost ključev. Če je matrika sestavljena iz enega samega para ključa in vrednosti, vrne isto matriko.

Na primer

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

4. ksort(matrika, vrsta_vrste)

Funkcija ksort razporedi tudi elemente asociativnega niza v naraščajočem vrstnem redu, vendar v skladu s ključi. Če je matrika sestavljena iz enega samega para ključa in vrednosti, vrne isto matriko.

Na primer

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

Drugi parameter v funkcijah razvrščanja je sort_type. Na voljo so naslednje možnosti. Možnosti določajo, kako primerjati elemente matrike.

5. arsort(matrika, vrsta_vrste)

funkcija asort razporedi elemente asociativnega niza v padajočem vrstnem redu glede na vrednosti. Če je matrika sestavljena iz enega samega para ključa in vrednosti, vrne isto matriko.

Na primer

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

6. krsort(matrika, vrsta_vrste)

Funkcija krsort razporedi tudi elemente asociativnega niza v padajočem vrstnem redu, vendar v skladu s ključi. Če je matrika sestavljena iz enega samega para ključa in vrednosti, vrne isto matriko.

Na primer

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

Drugi parameter v funkcijah razvrščanja je sort_type. Na voljo so naslednje možnosti. Možnosti določajo, kako primerjati elemente matrike.

Vrsta razvrščanjaOpis
0 = RAZVRŠČANJE_REDNOPrivzeto. Običajno primerjajte predmete (ne spreminjajte vrst)
1 = SORT_NUMERIC Primerjaj predmete številčno
2 = SORT_STRINGPrimerjajte predmete kot nize
3 = SORT_LOCALE_STRINGPrimerjajte elemente kot nize glede na trenutni jezik
4 = SORT_NATURALPrimerjajte elemente kot nize z naravnim razvrščanjem
5 = SORT_FLAG_CASE
Možnosti razvrščanja matrike v funkciji sort in rsort

Poleg teh osnovnih in vgrajenih funkcij razvrščanja matrik lahko uporabnik definira tudi svojo lastno funkcijo razvrščanja v PHP. Torej, v tem razdelku boste izvedeli o funkcijah usort, uasort in uksort v PHP.

usort(matrika, moja_funkcija_razvrščanja)

funkcija usort sprejme dva parametra. Prvi parameter je matrika za razvrščanje, drugi parameter pa uporabniško definirana funkcija za razvrščanje.

Na primer

<?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(matrika, uporabniška_defina_funkcija)

Razvrstite matriko ali asociativno matriko glede na funkcijo, ki jo definira uporabnik. Funkcija uasort izvaja razvrščanje glede na vrednost asociativnega niza. Za tipke imamo funkcijo uksort, ki je navedena spodaj.

Na primer

<?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(matrika, uporabniško_definirana_funkcija)

Razvrstite asociativno matriko z uporabo uporabniško definirane funkcije. uksort izvaja razvrščanje po ključih asociativnega niza.

Na primer

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

Uporabne funkcije matrike v PHP

vsota_matrike funkcija vrne vsoto elementov matrike. Ta funkcija sprejema tako indeksirano matriko kot asociativno polje. V primeru asociativnega niza vrne vsoto vrednosti.

Na primer

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

array_splice funkcija odstrani določene elemente iz matrike in jih nadomesti z novimi. Ne pozabite, da funkcija array_splice ne ohrani ključev v vrnjeni vrednosti.

Na primer

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

Funkcija array_search preprosto išče element v matriki. Če element najdemo, vrne njegov ključ. Ta funkcija sprejema tri parametre.

array_search(vrednost, niz, strog)

Tretji parameter strict je lahko resničen ali napačen. Če pa je res, mora biti vrednost za iskanje v matriki istega podatkovnega tipa. To pomeni, da niz »5« in številka 5 nista enaka v primeru strict = true. Če pa je strict nastavljen na false, bo array_search obravnaval »5« in 5 kot isto.

Na primer

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

array_reverse vrne matriko z elementi v obratnem vrstnem redu. Če je drugi parameter nastavljen na true, se ključi ohranijo v izhodu.

Na primer

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

array_push(niz, vrednost1, vrednost2, …) funkcija potisne elemente v matriko. V matriko lahko potisnete več elementov, tako da jih določite v parametru funkcije, začenši z drugim paramom. H Vsaka vrednost je ločena z vejico, vrednost pa je lahko tudi matrika.

Na primer

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

array_pop() odstrani zadnji element matrike.

Na primer

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

Za uradno referenco razvrščanja nizov PHP 8 kliknite tukaj.

Dodaj komentar

Mreža mentorjev

Naučite se PHP od A do Ž