配列内の要素のパスがわかっている場合、この要素の値を取得するにはどうすればよいですか?
次のコードはエラーを報告します。それを解決するにはどうすればよいですか?誰か良いアイデアはありますか?
$m = ['a'=>['b'=>['c'=>'@@@@@']]];
$x = 'a.b.c';
$y = str_replace('.','\'][\'',$x);
$y = 'm[\''.$y.'\']';
エコー $$y
エラーが報告されます:
注意: 未定義の変数: m['a']['b']['c'] (/web/root/index.php の 9 行目)
動的変数名は変数に対してのみ有効で、配列要素には無効です。
'm["a"]["b"]["c"]'
先頭に$を付けても文字列全体が変数とみなされ、当然見つかりません。ループを使用するだけです
リーリー?まず第一に、出力したエコーの後の変数 $y にはもう 1 つあります
$
符号,其次如果你想获取@@@@@
,直接$m['a']['b']['c']
実際、あなたが書いたことは正しいです。急いで質問しないで、コードを見てください
個人的には、この種の問題に直面した場合、文字列置換を使用する代わりに再帰を使用して対処することを検討する必要があると思います。
リーリーリーリー
laravelフレームワークを使用している場合は、
リーリー