Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Punktsyntaxzeichenfolgen in PHP rekursiv in mehrdimensionale Arrays konvertieren?

Wie kann ich Punktsyntaxzeichenfolgen in PHP rekursiv in mehrdimensionale Arrays konvertieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-29 05:28:17633Durchsuche

How Can I Recursively Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

So erstellen Sie ein mehrdimensionales Array aus der Punktsyntax in PHP

Konvertieren der Punktsyntax in PHP (wie „dieses.das.andere“) ) in ein mehrdimensionales Array kann eine nützliche Aufgabe zum Organisieren von Daten sein. So führen Sie diese Konvertierung durch:

Verwenden einer rekursiven Funktion:

Die folgende Funktion, „assignArrayByPath()“, kann rekursiv durch die Punktsyntax navigieren und ein mehrdimensionales Array erstellen:

function assignArrayByPath(&$arr, $path, $value, $separator='.') {
    $keys = explode($separator, $path);

    foreach ($keys as $key) {
        $arr = &$arr[$key];
    }

    $arr = $value;
}

So funktioniert es:

  1. Die Funktion benötigt vier Parameter:

    • $arr: Das zu ändernde mehrdimensionale Array.
    • $path: Der Punktsyntaxpfad, der die gewünschte Schlüsselstruktur darstellt.
    • $value: Der Wert zum Zuweisen zum letzten Schlüssel.
    • $separator: (Optional) Das in der Punktsyntax verwendete Trennzeichen (standardmäßig .)
  2. Die Funktion explosion() teilt den Pfad in einzelne Schlüssel auf.
  3. Die Funktion durchläuft jeden Schlüssel und verwendet Referenzen, um die entsprechenden Elemente im Array $ zu ändern arr.
  4. Wenn ein Schlüssel nicht existiert, wird er erstellt und der $arr-Referenz zugewiesen.
  5. Schließlich ist der $value dem letzten Schlüssel im Array zugewiesen.

Beispiel:

Um die Punktsyntax „s1.t1.column.1“ in ein mehrdimensionales Array zu konvertieren, verwenden Sie den folgenden Code:

$source = [];
assignArrayByPath($source, 's1.t1.column.1', 'size:33%');

echo $source['s1']['t1']['column']['1']; // Outputs: 'size:33%'

Dieser Ansatz bietet eine flexible und rekursive Methode zum Konvertieren komplexer Punktsyntax in mehrdimensionale Arrays in PHP und stellt so sicher, dass dies der Fall ist Nicht vorhandene Schlüssel werden automatisch erstellt. Dies kann besonders nützlich sein, um verschachtelte Datenstrukturen in ein strukturiertes Array-Format zu analysieren.

Das obige ist der detaillierte Inhalt vonWie kann ich Punktsyntaxzeichenfolgen in PHP rekursiv in mehrdimensionale Arrays konvertieren?. 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