Array-Sortierung nach benutzerdefinierter Reihenfolge in PHP
Das Sortieren von Arrays in PHP erfolgt normalerweise durch vergleichsbasierte Algorithmen. Es gibt jedoch Situationen, in denen Sie Arrays basierend auf einer vordefinierten benutzerdefinierten Reihenfolge sortieren müssen.
Stellen Sie sich ein Array von Arrays vor, bei dem jedes Unterarray zwei Schlüssel enthält: „id“ und „title“. Sie möchten das Hauptarray in einer bestimmten Reihenfolge sortieren, wie zum Beispiel:
[3452342, 5867867, 7867867, 1231233]
Um dies zu erreichen, können Sie die Funktion usort() verwenden. Mit dieser Funktion können Sie eine Vergleichsfunktion angeben, die definiert, wie die Array-Elemente verglichen werden.
In diesem Fall verwendet die Vergleichsfunktion einen Abschluss, um die Positionen der „id“-Werte im benutzerdefinierten Reihenfolge-Array zu vergleichen ( $order):
usort($array, function ($a, $b) use ($order) { $pos_a = array_search($a['id'], $order); $pos_b = array_search($b['id'], $order); return $pos_a - $pos_b; });
Die Vergleichsfunktion weist die Positionen der „id“-Werte im $order-Array $pos_a und $pos_b zu. Anschließend werden diese Positionen subtrahiert, um die Reihenfolge zu bestimmen ($a kommt vor $b, wenn $pos_a kleiner als $pos_b ist).
Durch die Verwendung des benutzerdefinierten Reihenfolge-Arrays und der Vergleichsfunktion können Sie Ihr Array effektiv sortieren Arrays in der vordefinierten Reihenfolge.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein PHP-Array basierend auf einer benutzerdefinierten Reihenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!