Php 从变量更新数组

Php 从变量更新数组,php,arrays,variables,Php,Arrays,Variables,我将数组值的“路径”存储在变量中,并尝试设置该值。我想做的是: $array['Breaks'][1]['In'] = "XXX"; 但是,我在变量中存储了['Breaks'][1]['In']。所以我基本上是在做这样的事情: $path = "['Breaks'][1]['In']"; $array.$path = "XXX"; 但是,这不起作用,我也不确定如何正确地进行这项工作 有什么建议吗?尝试将$path变量的每个组件提取到它自己的变量中,或提取到一个数组中($pathArray)。

我将数组值的“路径”存储在变量中,并尝试设置该值。我想做的是:

$array['Breaks'][1]['In'] = "XXX";
但是,我在变量中存储了
['Breaks'][1]['In']
。所以我基本上是在做这样的事情:

$path = "['Breaks'][1]['In']";
$array.$path = "XXX";
但是,这不起作用,我也不确定如何正确地进行这项工作


有什么建议吗?

尝试将$path变量的每个组件提取到它自己的变量中,或提取到一个数组中($pathArray)。因此,如果将$pathArray[0]设置为“Breaks”,将$pathArray[1]设置为1等,则可以执行以下操作:

$array[$pathArray[0]][$[pathArray[1]][$[pathArray[2]] = "XXX";

尽管这似乎是一种不同寻常的方式,但可能值得重新考虑您的方法。

尝试将$path变量的每个组件提取到自己的变量中,或提取到一个数组中($pathArray)。因此,如果将$pathArray[0]设置为“Breaks”,将$pathArray[1]设置为1等,则可以执行以下操作:

$array[$pathArray[0]][$[pathArray[1]][$[pathArray[2]] = "XXX";
尽管这似乎是一种不寻常的方式,而且可能值得重新思考您的方法。

尝试这样做

//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);
试着这样做

//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);

只要用户不可修改路径字符串或不可解析路径字符串,您就可以执行以下操作:

eval("\$array".$path." = 'Value';");

只要用户不可修改路径字符串,或者以前无法解析路径字符串,您就可以执行以下操作:

eval("\$array".$path." = 'Value';");

您可以尝试分析
$path
,然后循环分析的值以设置值。为什么变量中有
['Breaks'][1]['In']
?相关:我正在使用AJAX动态更新大型数组中的值。它发布数据,并将其发布到我的更新脚本中,以便能够选择和修改数据。uhu。为什么变量中又有
['Breaks'][1]['In']
?。。。所以我的脚本可以更新该值?您可以尝试解析
$path
,然后循环解析的值来设置该值。为什么变量中有
['Breaks'][1]['In']
?相关:我正在使用AJAX动态更新大型数组中的值。它发布数据,并将其发布到我的更新脚本中,以便能够选择和修改数据。uhu。为什么变量中又有
['Breaks'][1]['In']
?。。。所以我的脚本可以更新该值?谢谢!正如我所要求的,简单、有效。谢谢,谢谢!正如我所要求的,简单、有效。谢谢。