Heim >Backend-Entwicklung >PHP-Tutorial >Wie konvertiert man mehrdimensionale PHP-Arrays mit Punktnotationsschlüsseln in 2D-Arrays?

Wie konvertiert man mehrdimensionale PHP-Arrays mit Punktnotationsschlüsseln in 2D-Arrays?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 00:24:29558Durchsuche

How to Convert Multidimensional PHP Arrays to 2D Arrays with Dot Notation Keys?

Mehrdimensionale PHP-Arrays in 2D-Arrays mit Punktnotationsschlüsseln konvertieren

Das Reduzieren mehrdimensionaler PHP-Arrays in 2D-Arrays mit Punktnotationsschlüsseln kann von Vorteil sein verschiedene Szenarien. Es ermöglicht Ihnen den nahtlosen Zugriff auf verschachtelte Array-Werte mithilfe der Punktnotation, was die Lesbarkeit und Wartbarkeit des Codes verbessert.

Rekursive Funktion zum Konvertieren verschachtelter Arrays

Glücklicherweise bietet PHP eine rekursive Funktion Funktion, die diese Konvertierung elegant erreichen kann:

<code class="php">$result = array();
$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));

foreach ($ritit as $leafValue) {
    $keys = array();
    foreach (range(0, $ritit->getDepth()) as $depth) {
        $keys[] = $ritit->getSubIterator($depth)->key();
    }
    $result[join('.', $keys)] = $leafValue;
}</code>

Erklärung:

  • Die Klassen RecursiveIteratorIterator und RecursiveArrayIterator werden verwendet, um das verschachtelte Array rekursiv zu durchlaufen.
  • Während jeder Iteration wird die Schlüsselmethode des RecursiveArrayIterators verwendet, um den aktuellen Schlüssel des Arrays zu erfassen.
  • Die Methode getSubIterator($ Depth) wird verwendet, um den Unteriterator an einem bestimmten Ort abzurufen Tiefe, wodurch wir verschachtelte Arrays durchlaufen können.
  • Die Funktion range(0, $ritit->getDepth()) erstellt ein Array mit Tiefen, das vom innersten Array zum äußersten Array durchläuft.
  • Die Funktion join('.', $keys) verkettet die Array-Schlüssel mit einem Punkt (.) als Trennzeichen und erstellt so den Punktnotationsschlüssel.
  • Das resultierende Schlüssel-Wert-Paar wird im gespeichert $result array.

Ausgabe:

Diese Funktion generiert das gewünschte 2D-Array mit Punktnotationstasten:

<code class="php">$newArray = array(
    'key1' => 'value1',
    'key2.subkey' => 'subkeyval',
    'key3' => 'value3',
    'key4.subkey4.subsubkey4' => 'subsubkeyval4',
    'key4.subkey4.subsubkey5' => 'subsubkeyval5',
    'key4.subkey5' => 'subkeyval5'
);</code>

Das obige ist der detaillierte Inhalt vonWie konvertiert man mehrdimensionale PHP-Arrays mit Punktnotationsschlüsseln in 2D-Arrays?. 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