Uasort() -
uasort
(PHP 4, PHP 5, PHP 7, PHP 8)
uasort — Sortera en array med en användardefinierad jämförelsefunktion och bibehåll indexassociation
Beskrivning
uasort(array &$array, callable $callback): true
Sorterar en array på plats så att dess nycklar bibehåller sin korrelation med de värden de är associerade med, genom att använda en användardefinierad jämförelsefunktion.
Detta används främst när man sorterar associativa arrayer där den faktiska elementordningen är betydelsefull.
Notera:
Om två medlemmar jämförs som lika behåller de sin ursprungliga ordning. Före PHP 8.0.0 var deras relativa ordning i den sorterade arrayen odefinierad.
Notera:
Återställer arrayens interna pekare till det första elementet.
Parametrar
- array
- Den array som ska sorteras.
- callback
- Jämförelsefunktionen måste returnera ett heltal mindre än, lika med, eller större än noll om det första argumentet anses vara respektive mindre än, lika med, eller större än det andra.
callback(mixed $a, mixed $b): int
Varning: Att returnera icke-heltalsvärden från jämförelsefunktionen, såsom float, kommer att resultera i en intern typomvandling till int av callback:ens returvärde. Så värden som 0.99 och 0.1 kommer båda att omvandlas till ett heltalsvärde av 0, vilket kommer att jämföra sådana värden som lika.
Returvärden
Returnerar alltid true.
Ändringslogg
- Version Beskrivning
- 8.2.0 Returtypen är nu true; tidigare var det bool.
- 8.0.0 Om callback förväntar sig att en parameter ska passeras som referens kommer denna funktion nu att ge ut ett E_WARNING.
Exempel
Exempel #1 Grundläggande uasort()-exempel
<?php // Jämförelsefunktion function cmp($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } // Array att sortera $array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4); print_r($array); // Sortera och skriv ut den resulterande arrayen uasort($array, 'cmp'); print_r($array); ?>
Exemplet ovan kommer att skriva ut:
Array ( [d] => -9 [h] => -4 [c] => -1 [e] => 2 [g] => 3 [a] => 4 [f] => 5 [b] => 8 )
Se även
- usort() - Sorterar en array efter värden med en användardefinierad jämförelsefunktion
- uksort() - Sorterar en array efter nycklar med en användardefinierad jämförelsefunktion
- Sortering av Arrayer