Heim > Backend-Entwicklung > PHP-Tutorial > Wie aktualisiere ich verschachtelte Array-Daten sicher mithilfe eines String-Pfads in PHP?

Wie aktualisiere ich verschachtelte Array-Daten sicher mithilfe eines String-Pfads in PHP?

Barbara Streisand
Freigeben: 2024-12-18 02:59:10
Original
450 Leute haben es durchsucht

How to Safely Update Nested Array Data Using a String Path in PHP?

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';
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

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