Zugriff auf verschachtelte Array-Daten mit einem String-Pfad
Angenommen, Sie haben einen Kunden, der eine Zeichenfolge eingibt, die einem bestimmten Format folgt, beispielsweise „Autos“. .honda.civic = Ein". Das Ziel besteht darin, diese Zeichenfolge zu verwenden, um ein verschachteltes Array auf folgende Weise zu aktualisieren:
$data['cars']['honda']['civic'] = 'On';
Zunächst verwenden Sie die Explosionsfunktion, um die Eingabezeichenfolge zu tokenisieren:
$token = explode("=", $input); $value = trim($token[1]); $path = trim($token[0]); $exploded_path = explode(".", $path);
Jetzt Um die Array-Elemente festzulegen, ohne auf unsichere Methoden wie eval angewiesen zu sein, verwenden Sie den Referenzoperator (&). Der &-Operator stellt einen Verweis auf die Variable bereit, sodass Sie ihren Wert direkt ändern können.
$temp = &$data; foreach ($exploded_path as $key) { $temp = &$temp[$key]; } $temp = $value; unset($temp);
Im Wesentlichen fungiert $temp als Zeiger auf die aktuelle Ebene des Arrays. Die Schleife durchläuft die im Zeichenfolgenpfad angegebenen Elemente und erstellt oder ruft nach und nach die erforderlichen Arrays ab. Schließlich wird der Wert festgelegt und unset($temp) entfernt den Verweis auf das verschachtelte Element.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich verschachtelte Array-Daten sicher mithilfe eines String-Pfads in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!