我有一个数组,其中包含一个值在一个非常大的多维数组中的位置。我需要获取此位置并将该位置的值替换为另一个值。我找到了许多关于通过编写递归函数使用此类索引数组返回位置值的文章。但是,这行不通,因为我无法分割大数组,我只需要替换那个值。
位置看起来像这样:
array(1,5,3,4,6);
我必须找到一个值的代码如下:
function replace_value($indexes, $array, $replacement){
if(count($indexes) > 1)
return replace_value(array_slice($indexes, 1), $array[$indexes[0]], $replacement);
else
return $array[$indexes[0]];
}
}
我如何修改它而不是递归地减少数组直到找到值我可以简单地修改大数组的一部分?有没有办法建立
array(1,5,3,4,6);
进入
$array[1][5][3][4][6];
谢谢
最佳答案
你可以这样修改你的函数:
function replace_value($indexes, &$array, $replacement){
if(count($indexes) > 1) {
return replace_value(array_slice($indexes, 1), $array[$indexes[0]], $replacement);
} else {
return $array[$indexes[0]] = $replacement;
}
}
确保你在函数定义中写的是 &$array
,而不是 $array
这将传入实际数组,以便你可以就地修改它。否则,您只会传递一份副本。
关于php - 给定值的索引替换多维数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540568/