【问题标题】:How to add the values of multidimensional arrays in PHP?如何在 PHP 中添加多维数组的值?
【发布时间】:2014-08-21 11:32:04
【问题描述】:

问题解决了谢谢大家:

foreach($FIMP as &$value){
    foreach($value as &$values){
         $values[0]=$values[3].$values[2].$values[1];
}

我有以下数组:

$FIMP=array(
    1 => array(
             1 => array('a','b','c')
             2 => array('a1','b1','c1')
    2 => array(
             1 => array('a2','b2','c2')
    3 => array(
             1 => array('a3','b3','c3')
             2 => array('a4','b4','c4')
             3 => array('a5','b5','c5')
)

我想添加值:b 和 c 并用 'bc' 覆盖 a 结果是这样的

$FIMP=array(
    1 => array(
             1 => array('bc','b','c')
             2 => array('b1c1','b1','c1')
    2 => array(
             1 => array('b2c2','b2','c2')
    ...

我已经尝试过 $FIMP

foreach($FIMP as $value){
    foreach($value as $values){
         $values[0]=$values[3].$values[2].$values[1];
}

}

在输出中没有改变之前的 $FIMP ,

【问题讨论】:

  • 尝试传递$value作为参考:&$value
  • 数组中只有三个元素,因此索引将不包含 $values[3]。请检查

标签: php arrays multidimensional-array foreach add


【解决方案1】:

来自PHP foreach documentation:

为了能够直接修改循环内的数组元素,在 $value 之前加上 &。在这种情况下,值将通过引用分配。

所以要更改$FIMP 中的值,您需要将foreach 循环更改为以下内容:

foreach($FIMP as &$value){
    foreach($value as &$values){
         // alter $value or $values here
    }
}

【讨论】:

    【解决方案2】:
    <?php
    
    $FIMP=array(
        1 => array(
             1 => array('a','b','c'),
             2 => array('a1','b1','c1'),
        ),
        2 => array(
             1 => array('a2','b2','c2'),
        ),
        3 => array(
             1 => array('a3','b3','c3'),
             2 => array('a4','b4','c4'),
             3 => array('a5','b5','c5'),
        ),
    );
    
    foreach($FIMP as & $v1){
        foreach($v1 as & $v2){
            $v2[0] = $v2[1].$v2[2];
        }
    }
    
    var_dump($FIMP);
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

        foreach($FIMP as &$first){
             foreach($first as &$second){
                  $second[0] = $second[1].$second[2];
             }
        }
      

      输出

      Array
      (
      [1] => Array
          (
              [1] => Array
                  (
                      [0] => bc
                      [1] => b
                      [2] => c
                  )
      
              [2] => Array
                  (
                      [0] => b1c1
                      [1] => b1
                      [2] => c1
                  )
      
          )
      
      [2] => Array
          (
              [1] => Array
                  (
                      [0] => b2c2
                      [1] => b2
                      [2] => c2
                  )
      
          )
      
      [3] => Array
          (
              [1] => Array
                  (
                      [0] => b3c3
                      [1] => b3
                      [2] => c3
                  )
      
              [2] => Array
                  (
                      [0] => b4c4
                      [1] => b4
                      [2] => c4
                  )
      
              [3] => Array
                  (
                      [0] => b5c5
                      [1] => b5
                      [2] => c5
                  )
      
          )
      
      )
      

      【讨论】:

      • $second[0] = $second[1].$second[2];
      猜你喜欢
      • 2019-05-30
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2011-02-10
      • 2013-06-22
      • 1970-01-01
      • 2020-06-10
      相关资源
      最近更新 更多