Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Funktionen gibt es zum Konvertieren eines zweidimensionalen PHP-Arrays in ein eindimensionales Array?

Welche Funktionen gibt es zum Konvertieren eines zweidimensionalen PHP-Arrays in ein eindimensionales Array?

L
LOriginal
2020-06-02 10:13:103297Durchsuche

Welche Funktionen gibt es zum Konvertieren eines zweidimensionalen PHP-Arrays in ein eindimensionales Array?

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_reduceFunktionsmethode

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_recursiveFunktionsmethode

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_mapDie 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn