Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiere ich mehrdimensionale Arrays in 2D-Arrays mit Punktnotationsschlüsseln in PHP?

Wie konvertiere ich mehrdimensionale Arrays in 2D-Arrays mit Punktnotationsschlüsseln in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 12:03:02183Durchsuche

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

Konvertieren mehrdimensionaler Arrays in 2D-Arrays mit Punktnotationsschlüsseln in PHP

Die Array-Struktur von PHP ermöglicht die Verwendung der Punktnotation, die eine bequeme Möglichkeit, auf verschachtelte Array-Elemente zuzugreifen. Es gibt jedoch Szenarien, in denen die Konvertierung eines mehrdimensionalen Arrays in ein 2D-Array mit Punktnotationsschlüsseln erforderlich ist.

Problem:

Bei einem mehrdimensionalen Array besteht das Ziel darin Wandeln Sie es in ein 2D-Array um, in dem jedem Element ein punktnotierter Schlüssel zugewiesen wird, der seinen Pfad innerhalb der ursprünglichen Array-Struktur darstellt.

Lösung:

Verwendung von RecursiveIteratorIterator und RecursiveArrayIterator Klassen ermöglichen es uns, das mehrdimensionale Array rekursiv zu durchlaufen. Während des Durchlaufs werden Schlüssel basierend auf der Tiefe der Iteration akkumuliert. Die Blattwerte des Arrays werden dann den konstruierten punktnotierten Schlüsseln zugewiesen, wodurch das gewünschte 2D-Array entsteht.

Code:

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

Ausgabe:

Array
(
    [key1] => value1
    [key2.subkey] => subkeyval
    [key3] => value3
    [key4.subkey4.subsubkey4] => subsubkeyval4
    [key4.subkey4.subsubkey5] => subsubkeyval5
    [key4.subkey5] => subkeyval5
)

Durch die Nutzung der rekursiven Natur der Iteratorklassen und die Konstruktion von Punktnotationsschlüsseln während der Durchquerung konvertiert dieses Codefragment mehrdimensionale Arrays effektiv in 2D-Arrays mit Punktnotationsschlüsseln.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich mehrdimensionale Arrays in 2D-Arrays mit Punktnotationsschlüsseln 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