Ich habe die folgende Array-Struktur:
Array
(
[0] => Array
(
[configuration_id] => 10
[id] => 1
[optionNumber] => 3
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 8
[id] => 1
[optionNumber] => 1
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
Was ist der beste Weg, um das Array inkrementell zu bestellen, basierend auf dem optionNumber
?
Die Ergebnisse sehen also so aus:
Array
(
[0] => Array
(
[configuration_id] => 8
[id] => 1
[optionNumber] => 1
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 10
[id] => 1
[optionNumber] => 3
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
< 0
, wird die Sortierfunktion angegeben, die zuvor angezeigt werdena
sollb
. Wenn es> 0
dann ist,b
sollte vorher erscheinena
.Verwenden
usort
quelle
Ich habe beide Lösungen von KennyTM und AJ Quick verwendet und eine Funktion entwickelt, die in diesem Fall in vielen Fällen hilfreich sein kann, z. B. beim Verwenden von ASC- oder DESC- Sortieren oder -Erhalten von Schlüsseln oder wenn Sie Objekte als untergeordnete Elemente eines Arrays haben .
Hier ist diese Funktion (funktioniert für PHP7 und höher aufgrund des Raumschiffoperators):
Verwendung:
Bearbeiten
Der erste Teil kann mit umgeschrieben werden
uasort()
und die Funktion wird kürzer (funktioniert für PHP7 und höher aufgrund des Raumschiffoperators):quelle
>
(größer als) anstelle von-
(minus) verwenden, da ich Zeichenfolgen verglichen habe. Funktioniert aber immer noch.$a
$b
Die Tasten werden entfernt, wenn Sie eine Funktion wie die oben genannten verwenden. Wenn die Schlüssel wichtig sind, würde die folgende Funktion sie beibehalten ... aber foreach-Schleifen sind ziemlich ineffizient.
Verwenden Sie arsort anstelle von asort, wenn Sie von hoch nach niedrig möchten.
Code-Gutschrift: http://www.firsttube.com/read/sorting-a-multi-dimensional-array-with-php/
quelle
Mit array_multisort (), array_map ()
DEMO
quelle
PHP 5.3+
quelle