Heim  >  Artikel  >  Backend-Entwicklung  >  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-20 15:02:44676Durchsuche

Beim Schreiben von PHP-Programmen müssen wir uns oft mit Arrays befassen. Arrays in PHP können eindimensional oder mehrdimensional sein, aber in einigen Fällen müssen wir mehrdimensionale Arrays in eindimensionale Arrays konvertieren. In diesem Artikel erfahren Sie, wie Sie mit PHP ein mehrdimensionales Array in ein eindimensionales Array konvertieren.

1. Mehrdimensionale Arrays und eindimensionale Arrays verstehen

In PHP bezieht sich ein mehrdimensionales Array auf ein Array, das andere Arrays enthält, das heißt, jedes Element in einem mehrdimensionalen Array ist ein Array. Hier ist zum Beispiel ein zweidimensionales Array:

$fruit = array(
    'apple' => array('type' => 'fruit', 'taste' => 'sweet'),
    'banana' => array('type' => 'fruit', 'taste' => 'sweet'),
    'carrot' => array('type' => 'vegetable', 'taste' => 'bitter')
);

Wenn Sie dieses zweidimensionale Array in ein eindimensionales Array konvertieren möchten, können Sie dazu array_merge_recursive() oder eine foreach-Schleife verwenden.

2. Verwenden Sie die Funktion array_merge_recursive().

Die Funktion array_merge_recursive() kann zum Zusammenführen mehrdimensionaler Arrays verwendet werden. Diese Funktion führt mehrere Arrays zu einem einzigen Array zusammen und behält alle Werte für denselben Schlüssel bei. Wenn Sie beispielsweise zwei Arrays mit demselben Schlüssel „Apfel“ haben und eines „Geschmack“- und „Farb“-Informationen enthält und das andere „Typ“- und „Attribut“-Informationen enthält, behält array_merge_recursive() die Werte „Alle“ bei, d. h.:

$fruit = array(
    'apple' => array('taste' => 'sweet', 'color' => 'red'),
    'banana' => array('taste' => 'sweet', 'color' => 'yellow')
);

$vegetable = array(
    'apple' => array('type' => 'fruit', 'attribute' => 'delicious'),
    'carrot' => array('type' => 'vegetable', 'attribute' => 'healthy')
);

$merged = array_merge_recursive($fruit, $vegetable);

Das Ergebnis ist ein mehrdimensionales Array, das wie folgt zusammengeführt wird:

$array = Array
(
    [apple] => Array
        (
            [taste] => Array
                (
                    [0] => sweet
                    [1] => Array
                        (
                            [0] => fruit
                        )

                )

            [color] => red
            [attribute] => delicious
        )

    [banana] => Array
        (
            [taste] => sweet
            [color] => yellow
        )

    [carrot] => Array
        (
            [type] => vegetable
            [attribute] => healthy
        )

)

Da es sich bei dem mit der Funktion array_merge_recursive() zusammengeführten Array um ein mehrdimensionales Array handelt, müssen Sie noch eine foreach-Schleife verwenden, um es in Eins umzuwandeln -dimensionales Array.

3. Verwenden Sie die foreach-Schleife

Die Verwendung der foreach-Schleife zum Konvertieren eines mehrdimensionalen Arrays in ein eindimensionales Array ist flexibler als die Verwendung der Funktion array_merge_recursive(). Die Grundidee der Verwendung einer foreach-Schleife zum Konvertieren eines mehrdimensionalen Arrays in ein eindimensionales Array besteht darin, jeden Wert im mehrdimensionalen Array in ein neues eindimensionales Array zu kopieren. Beispielsweise können Sie das obige $fruit-Array mit dem folgenden Code in ein eindimensionales Array konvertieren:

$flat = array();

foreach($fruit as $key => $value) {
  if(is_array($value)) {
    $flat = array_merge($flat, array_flatten($value));
  }
  else {
    $flat[$key] = $value;
  }
}

Dieser Code verwendet Rekursion und die Funktion array_merge(), um ein mehrdimensionales Array zu reduzieren. Die Funktion array_flatten() ist wie folgt definiert:

function array_flatten($array) {
  $result = array();

  foreach($array as $key => $value) {
    if (is_array($value)) {
      $result = array_merge($result, array_flatten($value));
    }
    else {
      $result[$key] = $value;
    }
  }

  return $result;
}

Diese Funktion ruft sich selbst rekursiv auf, um ein mehrdimensionales Array in ein eindimensionales Array umzuwandeln.

IV. Zusammenfassung

Die Konvertierung mehrdimensionaler Arrays in eindimensionale Arrays ist eine grundlegende Aufgabe in der PHP-Entwicklung. In diesem Artikel haben wir zwei Methoden behandelt: die Verwendung der Funktion array_merge_recursive() und die Verwendung einer foreach-Schleife. Unabhängig davon, für welche Methode Sie sich entscheiden, ist die Konvertierung eines mehrdimensionalen Arrays in ein eindimensionales Array eine nützliche Fähigkeit.

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