我有一个JSON对象,我尝试修改。所以我创建了以下功能。我首先反序列化JSON对象,然后给出数组以及我想要修改该值的路径。在PHP嵌套数组上编辑丑陋的值
function setInDict($arr, $path, $value){
switch(sizeof($path)){
case 1:
$arr[$path[0]] = $value;
break;
case 2:
$arr[$path[0]][$path[1]] = $value;
break;
case 3:
$arr[$path[0]][$path[1]][$path[2]] = $value;
break;
case 4:
$arr[$path[0]][$path[1]][$path[2]][$path[3]] = $value;
break;
case 5:
$arr[$path[0]][$path[1]][$path[2]][$path[3]][$path[4]] = $value;
break;
}
return $arr;
}
我尝试了很多东西(递归,& ARR),使其动态地工作,但我的PHP的经验是有限的,我不能让它的工作。
有没有一个干净的方式来做到这一点。有什么替代方法可以尝试吗?
例如我有以下的JSON,我想修改subsubkey到值2
{
"key":{
"subkey":{
"subsubkey":3
}
}
}
我反序列化使用json_decode($json, true);
它,我创建了$path
阵列这将是
['key', 'subkey', 'subsubkey']
你能显示'$ arr,$ path,$ value'的输入值吗? – RomanPerekhrest
[PHP:使用单独数组中定义的路径设置多维关联数组元素的值]的可能副本(http://stackoverflow.com/questions/6123061/php-set-the-value-of-a- multidimensional-associative-array-element-using-a-path) –
@MattRaines这不是一回事。 – YoloQ