Php 将值设置为嵌套数组子元素

Php 将值设置为嵌套数组子元素,php,arrays,Php,Arrays,好的,下面是我要做的: 假设我们有一个数组(数组的数组)——我们不知道有多少嵌套数组 我们得到了要设置的元素的路径(=索引) 价值呢 这怎么可能 示例 比如:putValueAtPosition($arr,“someValue”,数组(3,5,8))将设置$arr[3][5][8]=“someValue”并返回结果数组(完整集合) 欢迎您提出任何想法/意见 p.S.我正在研究一个完全不同的问题(但核心概念相同),甚至在PHP中也不存在(不过没关系——PHP已经足够清晰,可以通过!;-),我

好的,下面是我要做的:

  • 假设我们有一个数组(数组的数组)——我们不知道有多少嵌套数组
  • 我们得到了要设置的元素的路径(=索引)
  • 价值呢
这怎么可能

示例

比如:
putValueAtPosition($arr,“someValue”,数组(3,5,8))
将设置
$arr[3][5][8]=“someValue”
并返回结果数组(完整集合)

欢迎您提出任何想法/意见



p.S.我正在研究一个完全不同的问题(但核心概念相同),甚至在PHP中也不存在(不过没关系——PHP已经足够清晰,可以通过!;-),我还尝试过使用递归函数和通过引用传递(或不通过引用)的各种过于复杂的事情,我的头快要爆炸了…

可能重复的可能重复的可能重复的可能重复的可能重复的是的,就是这样!:-)是的,就是这样!:-)是的,就是这样!:-)是的,就是这样!:-)
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);