【问题标题】:PHP - Replace values of multidimensional arrayPHP - 替换多维数组的值
【发布时间】:2016-09-26 08:04:36
【问题描述】:

我有这个代码:

$mainArray = Array(
[0] => Array
    (            
        [0] => 06
    )

[1] => Array
    (            
        [0] => 15
    )    
)
$array1 = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"); 
$array2 = array_reverse($array1);

我想用 $array2 的值​​递归替换 $mainArray 的值(例如,当 $mainArray 的值等于 15 时,替换为 5,6 替换为 14。

我试过了:

foreach($mainArray $k1 => $value1){
    foreach($value1 as $k2 => $value2){ 

        $value2 = str_replace($array1,$array2,$value2);

        echo $value2;
    }
 }

但不能正常工作。

【问题讨论】:

  • 您能否更具体地解释一下什么决定了替换值应该是什么?

标签: php arrays multidimensional-array replace


【解决方案1】:

您可能不需要其他数组来执行此操作。如果我正确理解替换策略,您可以用数学方法代替,只需从 20 中减去原始值即可得到替换值。

$replaced = array_map(function($x) {
    return array(20 - $x[0]);
}, $mainArray);

【讨论】:

    【解决方案2】:

    在第一个数组中查找索引,并从第二个数组中取值

    $value2 = $array2[array_search($value2, $array1)];
    

    或者如果算法总是相同的

    $max = 20;
    $value2 = $max - $value2;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多