繁体   English   中英

循环并求和PHP中的数组值

[英]Looping and sum the array values in PHP

我有一个像这样的数组:

array(5) {
         ["Uniform"]=>
      array(2) {
        [0]=>
        array(2) {
          ["invoice_pname"]=>
          string(7) "Uniform"
          ["amount"]=>
          string(3) "900"
        }
        [1]=>
        array(2) {
          ["invoice_pname"]=>
          string(7) "Uniform"
          ["amount"]=>
          string(3) "450"
        }
      }

      ["Tuition Fee"]=>
      array(2) {
        [0]=>
        array(2) {
          ["invoice_pname"]=>
          string(11) "Tuition Fee"
          ["amount"]=>
          string(3) "300"
        }
        [1]=>
        array(2) {
          ["invoice_pname"]=>
          string(11) "Tuition Fee"
          ["amount"]=>
          string(3) "300"
        }
      }
    }

我想在关键元素内添加数组值,例如:

制服=> 1350

学费=> 600

我要做的是将foreach用作循环,

 $results = array();
 foreach ($result as $key => $resultant) {
    foreach ($resultant as $value) {
          $results[$key][] += $value['amount'];  
     }
  }

  var_dump($results);

但显示错误

<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message:  Undefined index: Uniform</p>
<p>Filename: controllers/Home.php</p>
<p>Line Number: 2787</p>
<p>Backtrace:</p>

有谁能够帮助我? 我想在桌子上显示它。

查看数据,您应该遍历结果[“统一”]

$results = array();
  foreach ($result['Uniform'] as $key => $resultant) {
     foreach ($resultant as $value) {
        $results[$key][] += $value['amount'];  
     }
  }

因为似乎此键是包含求和有效数组的键

您可以使用array_columnarray_sum
这样,您就不需要循环整个数组。

Foreach($arr as $key => $a){
    $res[$key] = array_sum(array_column($a, "amount"));
}
Var_dump($res);

https://3v4l.org/Wba3Q

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM