Usort(): Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
Rad 96: | Rad 96: | ||
; [[uasort() -]] Sorterar en array med en användardefinierad jämförelsefunktion och bibehåller indexassociation | ; [[uasort() -]] Sorterar en array med en användardefinierad jämförelsefunktion och bibehåller indexassociation | ||
; [[uksort()]] - Sorterar en array efter nycklar med en användardefinierad jämförelsefunktion | ; [[uksort()]] - Sorterar en array efter nycklar med en användardefinierad jämförelsefunktion | ||
; Sortering av Arrayer | ; [[Sortering av Arrayer]] |
Versionen från 11 augusti 2024 kl. 05.31
usort
(PHP 4, PHP 5, PHP 7, PHP 8)
usort — Sorterar en array efter värden med hjälp av en användardefinierad jämförelsefunktion
Beskrivning
usort(array &$array, callable $callback): true Sorterar en array på plats efter värden genom att använda en användarlevererad jämförelsefunktion för att bestämma ordningen.
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: Denna funktion tilldelar nya nycklar till elementen i arrayen. Den kommer att ta bort eventuella befintliga nycklar som kan ha tilldelats, snarare än att bara omordna nycklarna.
Parametrar
- array
- Den array som 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, 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 usort()-exempel
<?php function cmp($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } $a = array(3, 2, 5, 6, 1); usort($a, "cmp"); foreach ($a as $key => $value) { echo "$key: $value\n"; } ?>
Detta exempel kommer att skriva ut:
0: 1 1: 2 2: 3 3: 5 4: 6
Exempel #2 usort()-exempel med flerdimensionell array
<?php function cmp($a, $b) { return strcmp($a["fruit"], $b["fruit"]); } $fruits[0]["fruit"] = "lemons"; $fruits[1]["fruit"] = "apples"; $fruits[2]["fruit"] = "grapes"; usort($fruits, "cmp"); foreach ($fruits as $key => $value) { echo "\$fruits[$key]: " . $value["fruit"] . "\n"; } ?>
Detta exempel kommer att skriva ut:
\$fruits[0]: apples \$fruits[1]: grapes \$fruits[2]: lemons
Se även
- uasort() - Sorterar en array med en användardefinierad jämförelsefunktion och bibehåller indexassociation
- uksort() - Sorterar en array efter nycklar med en användardefinierad jämförelsefunktion
- Sortering av Arrayer