I den tidigare handledningen om PHP Arrays. Vi har lärt oss om att deklarera och iterera indexerade, associativa och flerdimensionella arrayer. Vi är nu i en position att gräva djupare i PHP Array Sorting. Utöver detta kommer vi också att arbeta med användbara funktioner som verkligen gör det superenkelt att arbeta med arrayer.
Array Sorteringsfunktioner i PHP
I PHP 8 har vi följande funktioner för att sortera en array.
Funktionsnamn | Sortera efter ordning |
sortera() | Stigande ordning |
rsort() | Fallande ordning |
en sort() | Associativa arrayer i stigande ordning, enligt värdet |
ksort () | Associativa arrayer i stigande ordning, enligt nyckeln |
arsort() | Fallande ordning, enligt värdet |
krsort () | Fallande ordning, enligt nyckeln |
1. Sortera (matris, sort_typ)
Sorteringsfunktionen ordnar elementen i en array i stigande ordning (lägre till högre). Om arrayen bara innehåller ett element kommer den att returnera samma array. Det återkommer sant vid framgång och falskt vid misslyckande.
Till exempel
<?php
$num = array(4, 6, 2, 12, 11);
sort($num);
?>
2. rSort(array, sort_type)
rSort är motsatsen till sorteringsfunktionen. Den arrangerar elementen i en array i fallande form (högre till lägre). Om arrayen bara innehåller ett element returnerar den samma array.
<?php
$num=array(4,16,12,20,11);
rsort($num);
?>
3. asort(array, sort_type)
asort-funktionen arrangerar elementen i en associativ array i stigande ordning enligt värdet på nycklar. Om matrisen består av en enda nyckel och ett värdepar returnerar den samma matris.
Till exempel
<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
asort($age);
?>
4. ksort(array, sort_type)
ksort-funktionen arrangerar också elementen i en associativ array i stigande ordning men enligt nycklarna. Om matrisen består av en enda nyckel och ett värdepar returnerar den samma matris.
Till exempel
<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
ksort($age);
?>
Den andra parametern i sorteringsfunktionerna är sort_type. Följande alternativ är tillgängliga. Alternativ bestämmer hur elementen i arrayen ska jämföras.
5. arsort(array, sort_type)
asort-funktionen arrangerar elementen i en associativ array i fallande ordning enligt värdena. Om matrisen består av en enda nyckel och ett värdepar returnerar den samma matris.
Till exempel
<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
asort($age);
?>
6. krsort(array, sort_type)
krsort-funktionen arrangerar också elementen i en associativ array i fallande ordning men enligt nycklarna. Om matrisen består av en enda nyckel och ett värdepar returnerar den samma matris.
Till exempel
<?php
$age=array("Jawad"=>"23","Abdullah"=>"14","Adil"=>"19");
ksort($age);
?>
Den andra parametern i sorteringsfunktionerna är sort_type. Följande alternativ är tillgängliga. Alternativ bestämmer hur elementen i arrayen ska jämföras.
Sorteringstyp | Beskrivning |
0 = SORT_REGULAR | Standard. Jämför objekt normalt (ändra inte typ) |
1 = SORT_NUMERIC | Jämför objekt numeriskt |
2 = SORT_STRING | Jämför objekt som strängar |
3 = SORT_LOCALE_STRING | Jämför objekt som strängar, baserat på aktuellt språk |
4 = SORT_NATURAL | Jämför objekt som strängar med naturlig ordning |
5 = SORT_FLAG_CASE |
Förutom dessa grundläggande och inbyggda array-sorteringsfunktioner kan användaren också definiera sin egen sorteringsfunktion i PHP. Så, i det här avsnittet kommer du att lära dig om funktionerna usort, uasort och uksort i PHP.
usort(array, min_sorteringsfunktion)
usort funktion acceptera två parametrar. Den första parametern är arrayen att sortera och den andra parametern är den användardefinierade funktionen för att sortera.
Till exempel
<?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)
Sortera en array eller associativ array enligt användardefinieringsfunktionen. Uasort-funktionen utför sortering enligt värdet på den associativa arrayen. För nycklarna har vi uksort-funktion, som ges härnäst.
Till exempel
<?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, användardefinierad_funktion)
Sortera en associativ array med hjälp av en användardefinierad funktion. uksort utför sortering enligt nycklar för den associativa arrayen.
Till exempel
<?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");
?>
Användbara array-funktioner i PHP
matrissumma funktion returnerar summan av matriselement. Denna funktion accepterar både indexerad array och associativ array. I fallet med en associativ array returnerar den summan av värden.
Till exempel
<?php
$a=array(5,15,25);
echo array_sum($a);
?>
array_splice funktionen tar bort specificerade element från arrayen och ersätter dem med nya element. Kom ihåg att array_splice-funktionen inte bevarar nycklarna i det returnerade värdet.
Till exempel
<?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));
?>
array_search-funktionen söker helt enkelt en array efter elementet. Om elementet hittas returnerar det sin nyckel. Denna funktion accepterar tre parametrar.
array_search(värde, array, strikt)
Den tredje parametern strikt kan vara antingen sant eller falskt. Men om det är sant måste värdet för att söka i arrayen vara av samma datatyp. Det vill säga, strängen "5" och nummer 5 är inte samma i fallet med strikt = sant. Men om strict är inställt på false, kommer array_search att betrakta "5" och 5 som samma.
Till exempel
<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);
?>
array_reverse returnerar array med element i omvänd ordning. Om den andra parametern är inställd på sant, bevaras nycklarna i utgången.
Till exempel
<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));
?>
array_push(matris, värde1, värde2, …) funktion push-element i arrayen. Du kan pusha flera element i en array genom att ange dem i parametern för funktionen, med början från de andra parametrarna. H Varje värde separeras med ett kommatecken och värdet kan också vara en matris.
Till exempel
<?php
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
?>
array_pop () tar bort det sista elementet i arrayen.
Till exempel
<?php
$a=array("red","green","blue");
array_pop($a);
print_r($a);
?>
För PHP 8 officiella arraysorteringsreferens, klicka här.