【问题标题】:Set value to nested array subelement将值设置为嵌套数组子元素
【发布时间】:2014-04-24 19:47:27
【问题描述】:

好的,这就是我想要做的:

  • 假设我们有一个数组数组 - 我们不知道有多少嵌套数组
  • 我们获得了要设置的元素的路径(= 索引)。
  • 还有价值

这怎么可能?

示例

假设:putValueAtPosition($arr, "someValue",array(3,5,8)); 将设置 $arr[3][5][8] = "someValue" 并返回结果数组(完整集)。

欢迎任何想法/意见?


P.S. 我正在研究一个完全不同的问题(但具有相同的核心概念),甚至在 PHP 中也没有(不过没关系 - PHP 足够清晰,可以理解重点!; -) ),并且我已经尝试了各种使用递归函数和通过引用(或不通过)传递的过于复杂的东西,我的头快要爆炸了......

【问题讨论】:

标签: php arrays


【解决方案1】:
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);

【讨论】:

  • 是的,就是这样! :-)
猜你喜欢
  • 2013-03-24
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多