Heim > Backend-Entwicklung > PHP-Tutorial > Wie reduziert man mehrdimensionale Arrays in PHP in ein zweidimensionales Array mit Punktnotationsschlüsseln?

Wie reduziert man mehrdimensionale Arrays in PHP in ein zweidimensionales Array mit Punktnotationsschlüsseln?

Susan Sarandon
Freigeben: 2024-11-01 07:09:02
Original
324 Leute haben es durchsucht

How do you flatten multidimensional arrays in PHP into a two-dimensional array with dot notation keys?

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

Mehrdimensionale Arrays in PHP bieten eine bequeme Möglichkeit, komplexe Datenstrukturen zu organisieren. Manchmal kann es jedoch erforderlich sein, ein mehrdimensionales Array mit Punktnotationsschlüsseln in ein zweidimensionales Array zu reduzieren. Dies kann mit einem rekursiven Ansatz erreicht werden.

Betrachten Sie das folgende Beispiel:

<code class="php">$myArray = [
    'key1' => 'value1',
    'key2' => [
        'subkey' => 'subkeyval'
    ],
    'key3' => 'value3',
    'key4' => [
        'subkey4' => [
            'subsubkey4' => 'subsubkeyval4',
            'subsubkey5' => 'subsubkeyval5',
        ],
        'subkey5' => 'subkeyval5'
    ]
];</code>
Nach dem Login kopieren

Um dieses Array in ein zweidimensionales Array mit Punktnotationsschlüsseln umzuwandeln, können wir den folgenden Code verwenden :

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

Dieser Code iteriert rekursiv über das mehrdimensionale Array und verwendet dabei die Klassen RecursiveIteratorIterator und RecursiveArrayIterator. Für jeden Blattwert im Array wird ein Punktnotationsschlüssel erstellt, indem die Schlüssel des übergeordneten und untergeordneten Arrays verbunden werden. Das Ergebnis ist ein neues zweidimensionales Array mit Punktnotationsschlüsseln, wie unten gezeigt:

<code class="php">[
    'key1' => 'value1',
    'key2.subkey' => 'subkeyval',
    'key3' => 'value3',
    'key4.subkey4.subsubkey4' => 'subsubkeyval4',
    'key4.subkey4.subsubkey5' => 'subsubkeyval5',
    'key4.subkey5' => 'subkeyval5'
]</code>
Nach dem Login kopieren

Diese Technik kann besonders nützlich sein, wenn mit Daten gearbeitet wird, die zur Verarbeitung oder Anzeige in eine flache Struktur konvertiert werden müssen .

Das obige ist der detaillierte Inhalt vonWie reduziert man mehrdimensionale Arrays in PHP in ein zweidimensionales Array mit Punktnotationsschlüsseln?. 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