首页 > 解决方案 > PHP数组:条件和

问题描述

我有一个看起来像这样的数组:

$array = array("a1" => 0, "a2" => 2, "a3" => 1, "b1" => 2, "b2" => 3);

当只考虑第一个字符时,我想对每个“唯一”键的值求和。结果应该是:

$newarray = array("a" => 3, "b" => 5);

我尝试在另一个 foreach() 循环中使用 foreach() 循环,如下所示:

foreach ($xml->children() as $output) {
  foreach ($array as $key => $value) {
    if (substr($key,0,1) == $output->KEY) {
      $sum += $value; echo $sum;
    }
  }
}

它不起作用,因为结果显然添加了先前的计算。

标签: phparrayscalculation

解决方案


简单的解决方案:

$final_array=[];
foreach($array as $key=>$value){
     $final_array[$key[0]] =  (isset($final_array[$key[0]])) ? $final_array[$key[0]]+$value : $value;
 }
 print_r($final_array);

输出:- https://3v4l.org/tZ4Ei


推荐阅读