我有一个存储在变量中的数组值的'path',我正在尝试设置该值。我想要做的是:
$array['Breaks'][1]['In'] = "XXX";
但是,我将['Breaks'][1]['In']
存储在变量中。所以我基本上试图做这样的事情:
$path = "['Breaks'][1]['In']";
$array.$path = "XXX";
虽然这不起作用,但我不确定如何正确地使用它。
有什么建议吗?
答案 0 :(得分:2)
只要路径字符串不能由用户修改或通过以前解析过,您就可以这样做:
eval("\$array".$path." = 'Value';");
答案 1 :(得分:1)
尝试将$ path变量的每个组件提取到自己的变量中,或者提取到数组中(下面是$ pathArray)。所以,如果你将$ pathArray [0]设置为'Breaks',$ pathArray [1]设置为1等,你可以这样做:
$array[$pathArray[0]][$[pathArray[1]][$[pathArray[2]] = "XXX";
虽然这似乎是一种不寻常的事情,但完全可能需要重新思考你的方法。
答案 2 :(得分:1)
尝试这样做,
//This solution works if you are sure the length of $path_arr is going to be 3
$path = "['Breaks'][1]['In']";
$path_arr = explode(']', str_replace(array("['", "'", "["), '', $path));
$array[$path_arr[0]][$path_arr[1]][$path_arr[2]] = "XXX";
var_dump($array);