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

标签 php arrays multidimensional-array indexing

我有一个数组,其中包含一个值在一个非常大的多维数组中的位置。我需要获取此位置并将该位置的值替换为另一个值。我找到了许多关于通过编写递归函数使用此类索引数组返回位置值的文章。但是,这行不通,因为我无法分割大数组,我只需要替换那个值。

位置看起来像这样:

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/

相关文章:

php - 单页显示两个表数据

php - 使用 php 变量显示图像

php - 如何从数据库中查找今天和其他日期之间的月份差异?

python - 如何删除重复的数组元素并保留Python中的第一次出现?

multidimensional-array - 戈朗 : Multidimensional array using slice of slice strategy resulting in strange output

Javascript - 在多维数组中查找多个值

php - WHMCS本地API的AddOrder问题

java - JAVA中解析二维数组的JSON

c - 如何将 .xyz 文件读入 double 组?

javascript - 无法获取每个父 div/类中的子 div ID