给定索引值,替换多维数组中的值

Chr*_*ris 4 php arrays indexing multidimensional-array

我有一个数组,包含一个非常大的多维数组中的值的位置.我需要获取此位置并将该位置的值替换为另一个值.我发现了许多关于通过编写递归函数来使用这样的索引数组返回位置值的文章.但是,这不起作用,因为我无法切割大型数组,我只需要替换那个值.

位置看起来像:

array(1,5,3,4,6);
Run Code Online (Sandbox Code Playgroud)

我必须找到一个值的代码如下:

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]];
    }
}
Run Code Online (Sandbox Code Playgroud)

如何修改它而不是递归地减少数组直到找到值我可以简单地修改一个大数组的一部分?有没有办法建立

array(1,5,3,4,6);
Run Code Online (Sandbox Code Playgroud)

$array[1][5][3][4][6];
Run Code Online (Sandbox Code Playgroud)

谢谢

dec*_*lan 5

您可以像这样修改您的功能:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

确保&$array在函数定义中写入,而不是$array 在实际数组中传入,以便您可以在适当的位置进行修改.否则你只是传递一份副本.