Lieber Kristof,
Array soll nach dem Wert "d" des Subarrays sortiert werden.
Du suchst usort().
usort() verlangt einen Funktionsnamen als zweiten Parameter, eine Callback-Funktion. Diese Callback-Funktion bekommt traditionell zwei zu vergleichende Werte übermittelt und muss nun einen der folgenden Werte zurückliefern:
-1 : Der erste Wert ist kleiner als der zweite
0 : Die Werte sind gleich groß
1 : Der erste Wert ist größer als der zweite
In Deinem Fall könnte das so aussehen:
function vergleiche_d($arr1, $arr2) {
$wert1 = $arr1['d'];
$wert2 = $arr2['d'];
if ($wert1 < $wert2)
return -1;
if ($wert1 > $wert2)
return 1;
if ($wert1 == $wert2)
return 0;
}
$hat_geklappt = usort ($array, 'vergleiche_d');
Die Callback-Funktion kann man natürlich auch kürzer schreiben:
function vergleiche_d($arr1, $arr2) {
if ($arr1['d'] == $arr2['d'])
return 0;
return ($arr1['d'] < $arr2['d']) ? -1 : 1;
}
usort($array, 'vergleiche_d');
Liebe Grüße aus Ellwangen,
Felix Riesterer.