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
Susan SarandonOriginal
2024-11-01 07:09:02331Durchsuche

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>

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>

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>

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!

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