Um in einem mehrdimensionalen Array nach einem anderen Feld zu sortieren, können Sie die Funktion usort in Kombination mit einer benutzerdefinierten Vergleichsfunktion verwenden.
Hier ist ein Beispielcode:
<?php
// 定义一个多维数组
$multidimensionalArray = array(
array('name' => 'John', 'age' => 25),
array('name' => 'Mary', 'age' => 30),
array('name' => 'David', 'age' => 20)
);
// 按age字段进行排序
usort($multidimensionalArray, function($a, $b) {
if ($a['age'] == $b['age']) {
return 0;
}
return ($a['age'] < $b['age']) ? -1 : 1;
});
// 打印排序后的数组
print_r($multidimensionalArray);
?>
Wenn Sie den obigen Code ausführen, lautet die Ausgabe:
Array
(
[0] => Array
(
[name] => David
[age] => 20
)
[1] => Array
(
[name] => John
[age] => 25
)
[2] => Array
(
[name] => Mary
[age] => 30
)
)
Im obigen Code wird die Funktion usort zum Sortieren des mehrdimensionalen Arrays verwendet. Die anonyme Funktion wird verwendet, um das Altersfeld zweier Array-Elemente zu vergleichen. Gibt 0 zurück, wenn das Alter der beiden Array-Elemente gleich ist. Gibt -1 zurück, wenn das Alter des ersten Array-Elements kleiner ist als das Alter des zweiten Array-Elements, andernfalls 1. Abschließend wird das sortierte Array mit der Funktion print_r gedruckt.
Sie können die Vergleichsfunktion ändern, um je nach Bedarf nach verschiedenen Feldern zu sortieren.