ホームページ > バックエンド開発 > PHPチュートリアル > PHP で文字列パスを使用して入れ子になった配列データを安全に更新するにはどうすればよいですか?

PHP で文字列パスを使用して入れ子になった配列データを安全に更新するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-18 02:59:10
オリジナル
445 人が閲覧しました

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

文字列パスを使用したネストされた配列データへのアクセス

顧客が「cars」などの特定の形式に従う文字列を入力しているとします。 .honda.civic = オン」。目的は、この文字列を利用して次の方法でネストされた配列を更新することです:

$data['cars']['honda']['civic'] = 'On';
ログイン後にコピー

まず、explode 関数を使用して入力文字列をトークン化します:

$token = explode("=", $input);
$value = trim($token[1]);
$path = trim($token[0]);
$exploded_path = explode(".", $path);
ログイン後にコピー

次に、 eval などの安全でないメソッドに依存せずに配列要素を設定するには、参照演算子 (&) を使用します。 & 演算子は変数への参照を提供し、その値を直接変更できるようにします。

$temp = &$data;
foreach ($exploded_path as $key) {
    $temp = &$temp[$key];
}
$temp = $value;
unset($temp);
ログイン後にコピー

本質的に、$temp は配列の現在のレベルへのポインターとして機能します。ループは文字列パスで指定された要素を反復処理し、必要な配列を段階的に作成または取得します。最後に、値が設定され、unset($temp) によってネストされた要素への参照が削除されます。

以上がPHP で文字列パスを使用して入れ子になった配列データを安全に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート