PHP Array Sortering och användbara funktioner

P

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.

FunktionsnamnSortera 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
Tabell över arraysorteringsfunktioner i PHP

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.

SorteringstypBeskrivning
0 = SORT_REGULARStandard. Jämför objekt normalt (ändra inte typ)
1 = SORT_NUMERIC Jämför objekt numeriskt
2 = SORT_STRINGJämför objekt som strängar
3 = SORT_LOCALE_STRINGJämför objekt som strängar, baserat på aktuellt språk
4 = SORT_NATURALJämför objekt som strängar med naturlig ordning
5 = SORT_FLAG_CASE
Sorteringsalternativ i sortering och rsorteringsfunktion

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.

Lägg till kommentar

Lärarnätverk

Lär dig PHP från A till Ö