ホームページ >バックエンド開発 >PHPチュートリアル >PHP で文字列パスを使用して入れ子になった配列値を安全に設定する方法

PHP で文字列パスを使用して入れ子になった配列値を安全に設定する方法

DDD
DDDオリジナル
2024-12-15 06:40:11768ブラウズ

How to Safely Set Nested Array Values Using a String Path in PHP?

文字列パスを使用したネストされた配列データの設定

この使用例では、文字列入力はネストされた配列値を設定することを目的としています。例:

"cars.honda.civic = On"

この文字列は次のようになります:

$data'cars'['civic'] = 'On' ;

入力のトークン化は簡単です:

$token = explode("=",$input);
$value = トリム($token[1]);
$path = トリム($token[0]);
$exploded_pa​​th =explode("。 ",$path);

課題は、次のような危険な手法に頼らずに配列を設定することにあります。 eval.

解決策

解決策には、参照演算子 (&) を利用して連続する既存の配列を取得することが含まれます。

$temp = & $data;
foreach($key として $exploded) {

$temp = & $temp[$key];

}
$temp = $value;
unset($temp);

このメソッドを使用すると、各レベルをハードコーディングせずにネストされた配列内を移動できます。 .

以上がPHP で文字列パスを使用して入れ子になった配列値を安全に設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。