好的,所以这就是我要做的事情:
那可行吗?
示例
让我们说:putValueAtPosition($arr, "someValue",array(3,5,8));
将设置$arr[3][5][8] = "someValue"
并返回结果数组(完整集)。
欢迎任何想法/意见?
PS 我正在处理一个完全不同的问题(但具有相同的核心概念),甚至在PHP中都没有(尽管不是很重要 - PHP很清楚足以让我们明白这一点!;-)),我已经尝试了各种过于复杂的事物,包括递归函数和通过引用传递(或者没有),我的脑袋即将爆炸......
答案 0 :(得分:3)
function putValueAtPosition(&$arr, $val , $path){
$marker=&$arr;
foreach($path as $p){
$marker=&$marker[$p];
}
$marker=$val;
}
$test=array(
1=>array(
1=>array(
1=>'cat',
2=>'hello'
),
2=>'hello'
),
2=>'hello'
);
print_r($test);
putValueAtPosition($test, 'changed', array(1,1,1));
print_r($test);