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