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
Freigeben: 2024-10-28 00:24:29
Original
570 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage