So konvertieren Sie ein zweidimensionales Array in ein eindimensionales Array in PHP
1. array_reduce-Funktionsmethode
2 . array_walk_recursive Funktionsmethode
3. array_map Funktionsmethode
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'), );
Jetzt wollen wir es in ein eindimensionales Array konvertieren Es gibt zwei Situationen:
Eine besteht darin, die angegebene Spalte in ein eindimensionales Array umzuwandeln, was in einem anderen Artikel zusammengefasst wird: Eine vollständige Liste der Methoden 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');
Beinhalten Sie hauptsächlich die folgende Methode.
1 array_reduce
Funktionsmethode
Die Verwendung der Funktion array_reduce() ist eine schnellere Methode:
$result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); },array())
Da die Funktion array_merge Arrays mit demselben Zeichenfolgenschlüssel überschreibt und zusammenführt name , daher müssen Sie zuerst array_value verwenden, um den Wert abzurufen, und ihn dann zusammenführen.
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 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 es zu:
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');
3 array_map-Funktionsmethode
Verwendung array_map
Die Methode ähnelt der Funktion array_reduce
wie folgt:
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_values($value)); }, $user);
muss lediglich ein leeres $result-Array deklarieren.
Darüber hinaus können Sie auch die array_walk-Methode und die foreach-Schleifenmethode verwenden. Die Prinzipien sind die gleichen wie oben.
Empfohlenes Tutorial: „PHP-Tutorial“
Das obige ist der detaillierte Inhalt vonWelche Funktionen gibt es zum Konvertieren eines zweidimensionalen PHP-Arrays in ein eindimensionales Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!