Uasort() -

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

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