Festlegen verschachtelter Array-Daten mithilfe eines String-Pfads
In diesem Anwendungsfall zielt eine String-Eingabe darauf ab, einen verschachtelten Array-Wert festzulegen. Zum Beispiel:
"cars.honda.civic = On"
Diese Zeichenfolge sollte Folgendes ergeben:
$data'cars'['civic'] = 'On' ;
Während der Tokenisierung ist die Eingabe unkompliziert:
$token = explosion("=",$input);
$value = trim($token[1]);
$path = trim($token[0]);
$exploded_path = explosion(". ",$path);
Die Herausforderung besteht darin, das Array festzulegen, ohne auf riskante Techniken wie z. B. zurückzugreifen eval.
Lösung
Eine Lösung besteht darin, den Referenzoperator (&) zu verwenden, um aufeinanderfolgende vorhandene Arrays zu erhalten:
$temp = & $data;
foreach($exploded as $key) {
$temp = & $temp[$key];
}
$temp = $value;
unset($temp);
Mit dieser Methode können Sie durch verschachtelte Arrays navigieren, ohne jede Ebene fest zu codieren .
Das obige ist der detaillierte Inhalt vonWie kann man verschachtelte Array-Werte mithilfe eines String-Pfads in PHP sicher festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!