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

Susan Sarandon
Freigeben: 2024-11-01 12:03:02
Original
182 Leute haben es durchsucht

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

Ausgabe:

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

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!