Wie sortiere ich ein mehrdimensionales PHP-Array effizient nach einem verschachtelten Feld?
In PHP ist es möglich, auf mehrdimensionale Arrays zu stoßen, die Tabellendaten darstellen , wobei jedes Element ein assoziatives Array von Feld-Wert-Paaren enthält. Die Aufgabe, diese Daten nach einem bestimmten Feld innerhalb der verschachtelten Arrays zu sortieren, kann problemlos gelöst werden.
Betrachten Sie das folgende datenbankähnliche Array:
$data = [ [ 'name' => 'Sony TV', 'price' => 600.00 ], [ 'name' => 'LG TV', 'price' => 350.00 ], [ 'name' => 'Samsung TV', 'price' => 425.00 ] ];
Um dieses Array nach dem „ Im Feld „Preis“ kann man die Funktion array_multisort() zusammen mit der Funktion array_column() verwenden, die eine bestimmte Spalte (ein bestimmtes Feld) aus dem mehrdimensionalen Array extrahiert. Mit dem folgenden Snippet wird dies erreicht:
array_multisort(array_column($data, 'price'), SORT_ASC, $data);
Dieser Aufruf ordnet das Array basierend auf dem Feld „Preis“ in aufsteigender Reihenfolge neu an, während die ursprünglichen Schlüssel des äußeren Arrays verworfen werden. Das resultierende sortierte Array wird wie folgt angezeigt:
[ [ 'name' => 'LG TV', 'price' => 350.00 ], [ 'name' => 'Samsung TV', 'price' => 425.00 ], [ 'name' => 'Sony TV', 'price' => 600.00 ] ]
Alternativ war für PHP-Versionen vor 8 aufgrund von Referenzübergabebeschränkungen eine zweizeilige Lösung erforderlich:
$col = array_column($data, 'price'); array_multisort($col, SORT_ASC, $data);
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales PHP-Array effizient nach einem verschachtelten Feld?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!