Die benutzerdefinierte Sortierung eines flachen Arrays mit uasort() gibt 1 zurück
Posted: 20 Jan 2025, 11:41
Ein Array kommt mit einigen oder allen der folgenden Werte in beliebiger Reihenfolge an. Wie ordne ich sie am besten in aufsteigender Größenordnung an? Also beginnend mit klein und endend mit XXL. Ich kann zwar sortieren, weiß aber nicht, wie die Elemente in meiner benutzerdefinierten Funktion angeordnet werden sollen
BEARBEITEN: Einige Informationen weggelassen, daher neue Frage erstellt Benutzerdefiniertes Bestellarray mit Schlüssel-/Wertpaaren
BEARBEITEN2: Vollständiger Code
Dies gibt aus:
und print_r($sorted_sizes) gibt nur die Ausgabe „1“ aus
Code: Select all
Small
XXL
Medium
Large
XL
BEARBEITEN2: Vollständiger Code
Code: Select all
print_r($sizes);
$sorted_sizes = $this->sort_sizes(array_unique($sizes));
print_r($sorted_sizes);
function sort_sizes($sizes)
{
return uasort($sizes, array($this, 'cmp'));
}
function cmp($a,$b)
{
$sizeArray = array( 'Small' => 0, 'Medium' => 1, 'Large' => 2, 'XL' => 3, 'XXL' => 4);
return $sizeArray[$a] - $sizeArray[$b];
}
Code: Select all
Array
(
[66-507cddcd16d9786abafccfa78b19acf8] => XL
[64-507cddcd16d9786abafccfa78b19acf8] => medium
[65-507cddcd16d9786abafccfa78b19acf8] => large
[63-507cddcd16d9786abafccfa78b19acf8] => small
)