Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie ein mehrdimensionales Array in ein eindimensionales Array in PHP

So konvertieren Sie ein mehrdimensionales Array in ein eindimensionales Array in PHP

PHPz
PHPzOriginal
2023-04-19 10:07:071321Durchsuche

In PHP bezieht sich ein mehrdimensionales Array auf eine Array-Struktur, die ein anderes oder mehrere Arrays enthält, wie zum Beispiel:

$array = array(
  array('name' => 'John', 'age' => 20),
  array('name' => 'Mary', 'age' => 25),
  array('name' => 'Mark', 'age' => 30)
);

Dies ist ein zweidimensionales Array mit drei Elementen. Jedes Element ist ein Array mit „Name“. Ein Unterarray mit zwei Schlüsseln -Wertpaare „ und „Alter“. Wenn Sie dieses zweidimensionale Array in ein eindimensionales Array konvertieren möchten, können Sie dazu einige Funktionen in PHP verwenden.

Methode 1: Verwenden Sie die Funktion array_column()

Die Funktion array_column() von PHP kann den Wert extrahieren, der dem angegebenen Schlüssel jedes Elements im Array entspricht, und ein neues Array zurückgeben, das diese Werte enthält. Wenn der angegebene Schlüssel nicht existiert, wird das Element ignoriert. Wir können die Werte extrahieren, die den „Namen“-Schlüsseln aller Elemente im zweidimensionalen Array entsprechen, und ein eindimensionales Array mit 3 Elementen erhalten:

$array = array(
  array('name' => 'John', 'age' => 20),
  array('name' => 'Mary', 'age' => 25),
  array('name' => 'Mark', 'age' => 30)
);

$names = array_column($array, 'name');
print_r($names);  // 输出:Array ( [0] => John [1] => Mary [2] => Mark )

Methode 2: Verwenden Sie die Funktion array_reduce()

Array_reduce von PHP ()-Funktion Ein Array kann gemäß den Regeln einer Rückruffunktion iteriert werden, um einen Endwert zu erzeugen. Mit dieser Funktion können wir die Unterarrays jedes Elements im zweidimensionalen Array zu einem eindimensionalen Array zusammenführen:

$array = array(
  array('name' => 'John', 'age' => 20),
  array('name' => 'Mary', 'age' => 25),
  array('name' => 'Mark', 'age' => 30)
);

$flatten = array_reduce($array, function($carry, $item) {
  return array_merge($carry, $item);
}, array());
print_r($flatten);  // 输出:Array ( [name] => Mark [age] => 30 )

Im obigen Code akzeptiert die Funktion array_reduce() eine Rückruffunktion und einen Anfangswert. Der Parameter $carry der Rückruffunktion repräsentiert das aktuelle Ergebnis und $item repräsentiert den Wert des aktuellen Elements. Der Anfangswert ist ein leeres Array, was bedeutet, dass das Endergebnis-Array die iterative Verarbeitung mit dem leeren Array als Anfangswert beginnt. Die Funktion array_merge() wird in der Rückruffunktion verwendet, um das Unterarray des aktuellen Elements und das vorherige Ergebnisarray zusammenzuführen.

Es ist zu beachten, dass die obige Methode 2 nur alle Schlüssel-Wert-Paare des letzten Elements abrufen kann, wenn jedes Element im zweidimensionalen Array eine unterschiedliche Anzahl von Schlüssel-Wert-Paaren aufweist. In anspruchsvolleren Situationen kann das Subarray vor der Schleife überprüft werden, um Datenverluste zu vermeiden.

Das Obige sind zwei Methoden zum Konvertieren mehrdimensionaler PHP-Arrays in eindimensionale Arrays. Die Auswahl der geeigneten Methode je nach Anlass und Datenstruktur kann die Effizienz und Lesbarkeit des Codes erhöhen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein mehrdimensionales Array in ein eindimensionales Array in PHP. 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