文字列パスを使用したネストされた配列データへのアクセス
顧客が「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 サイトの他の関連記事を参照してください。