„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie konvertiert man mehrdimensionale PHP-Arrays mit Punktnotationsschlüsseln in 2D-Arrays?

Wie konvertiert man mehrdimensionale PHP-Arrays mit Punktnotationsschlüsseln in 2D-Arrays?

Veröffentlicht am 15.01.2025
Durchsuche:189

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

Konvertieren Sie mehrdimensionale PHP-Arrays in 2D-Arrays mit Punktnotationsschlüsseln

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:

$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;
}

Erläuterung:

  • Die Klassen RecursiveIteratorIterator und RecursiveArrayIterator werden verwendet, um das verschachtelte Array rekursiv zu durchlaufen.
  • Während jeder Iteration wird die Die Schlüsselmethode des RecursiveArrayIterators wird zum Erfassen des aktuellen Schlüssels verwendet des Arrays.
  • Die Methode getSubIterator($ Depth) wird verwendet, um den Sub-Iterator in einer bestimmten Tiefe abzurufen, sodass wir durch verschachtelte Arrays iterieren können.
  • Der Bereich(0, $ Die Funktion ritit->getDepth()) erstellt ein Tiefenarray, das vom innersten Array zum äußersten Array verläuft.
  • Der Join('.', Die Funktion „$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 $result-Array gespeichert.

Ausgabe:

Diese Funktion generiert das gewünschte 2D-Array mit Punktnotation Schlüssel:

$newArray = array(
    'key1' => 'value1',
    'key2.subkey' => 'subkeyval',
    'key3' => 'value3',
    'key4.subkey4.subsubkey4' => 'subsubkeyval4',
    'key4.subkey4.subsubkey5' => 'subsubkeyval5',
    'key4.subkey5' => 'subkeyval5'
);
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3