假如我知道數組中某一個元素的路徑,我怎麼取到這個元素的值?
下面這段程式碼報錯,該怎麼解決?大家有沒有好的辦法?
$m = ['a'=>['b'=>['c'=>'@@@@@']]];
$x = 'a.b.c';
$y = str_replace('.','\'][\'',$x);
$y = 'm[\''.$y.'\']';
echo $$y;
會報錯:
Notice: Undefined variable: m['a']['b']['c'] in /web/root/index.php on line 9
動態變數名只對變數有效,對數組元素是不行的,
'm["a"]["b"]["c"]'
就算前面加$, 會把整個字串當做變量,自然是找不到。簡單的你可用個循環
?首先你印出來的echo後面的變數$y多了個
$
符号,其次如果你想获取@@@@@
,直接$m['a']['b']['c']
其實你寫的已經對了,不要急問,多看一眼你的程式碼
個人覺得,面對這種問題應該使用考慮使用遞歸來處理,而不是透過字串替換。
雷雷
如果你用的laravel框架,