Angenommen, es gibt das folgende zweidimensionale Array:
$user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username' => 'a2'), '2' => array('id' => 102, 'username' => 'a3'), '3' => array('id' => 103, 'username' => 'a4'), '4' => array('id' => 104, 'username' => 'a5'), );
Nun wollen wir es in ein eindimensionales Array konvertieren. Es gibt zwei Situationen:
One Es wandelt die angegebene Spalte in ein eindimensionales Array um, das in einem anderen Artikel zusammengefasst wird: „Vollständige Methode zum Extrahieren einer angegebenen Spalte aus einem mehrdimensionalen Array in PHP“ .
Jetzt konzentrieren wir uns auf den zweiten Fall, bei dem alle Werte in ein eindimensionales Array konvertiert werden. Die Schlüsselwerte sind gleich und werden nicht überschrieben. Das konvertierte eindimensionale Array sieht so aus:
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');
Es gibt hauptsächlich die folgenden Methoden.
1 array_reduce-Funktionsmethode
Die Verwendung der array_reduce()-Funktion ist eine schnellere Methode:
$result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); }, array())
Weil die array_merge-Funktion die zusammenführt Gleiche Zeichen-Arrays mit Zeichenfolgenschlüsselnamen werden überschrieben und zusammengeführt, daher müssen die Werte vor dem Zusammenführen mit array_value abgerufen werden.
Wenn die zweite Dimension ein numerischer Schlüsselname ist, wie zum Beispiel:
$user = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array(102, 'a3'), 'd' => array(103, 'a4'), 'e' => array(104, 'a5'), );
, dann machen Sie einfach Folgendes:
$result = array_reduce($user, 'array_merge', array())
2 array_walk_recursive Funktionsmethode
Die Verwendung der Funktion array_walk_recursive() ist sehr flexibel und kann ein Array beliebiger Dimension in ein eindimensionales Array umwandeln.
$result = []; array_walk_recursive($user, function($value) use (&$result) { array_push($result, $value); });
Zum Beispiel das folgende mehrdimensionale Array:
$user4 = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array( 'd' => array(102, 'a3'), 'e' => array(103, 'a4'), ), );
Nach Verwendung dieser Methode wird daraus:
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');
3 array_map-Funktionsmethode
Die Methode zur Verwendung der Funktionen array_map und array_reduce ist ähnlich und wie folgt:
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_values($value)); }, $user);
Es muss lediglich ein leeres $result-Array deklariert werden.
Darüber hinaus können Sie auch die array_walk-Methode und die foreach-Schleifenmethode verwenden. Die Prinzipien sind die gleichen wie oben.
Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!
Das obige ist der detaillierte Inhalt vonZusammenfassung der Methoden zum Konvertieren eines zweidimensionalen PHP-Arrays (oder eines beliebigen dimensionalen Arrays) in ein eindimensionales Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!