从变量更新数组

时间:2012-11-02 20:20:45

标签: php arrays variables

我有一个存储在变量中的数组值的'path',我正在尝试设置该值。我想要做的是:

$array['Breaks'][1]['In'] = "XXX";

但是,我将['Breaks'][1]['In']存储在变量中。所以我基本上试图做这样的事情:

$path = "['Breaks'][1]['In']";
$array.$path = "XXX";

虽然这不起作用,但我不确定如何正确地使用它。

有什么建议吗?

3 个答案:

答案 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);

Demo