【问题标题】:How to get sum of values in specific index of multidimensional array using php?如何使用php获取多维数组特定索引中的值总和?
【发布时间】:2017-04-04 13:43:53
【问题描述】:

我的代码中有这个数组

Array
(
    [1] => Array
        (
            [1] => 4
            [5] => 7
        )

    [2] => Array
        (
            [1] => 2
            [5] => 5
        )

    [3] => Array
        (
            [1] => 2
            [5] => 5
        )

    [4] => Array
        (
            [1] => 6
            [5] => 9
        )

    [5] => Array
        (
            [1] => 6
            [5] => 8
        )

)
1

如何获得具有相同索引的 sum 元素?例如 - 索引为 5 或索引为 1 的所有元素的总和。如果可能没有硬编码。

【问题讨论】:

  • 请表现出一些努力并向我们展示你已经尝试过什么。
  • 您可以使用var_export($array) 并编辑您的问题
  • 简单地遍历数组或使用任何数组遍历函数并总结你想要的索引。

标签: php arrays multidimensional-array array-sum


【解决方案1】:

您可以使用此代码

这是测试的演示代码

$items = array(
 array(1 => 1, 2 => 'White Shirt', 3 => 2),
 array(1 => 2, 2 => 'Blue Shirt', 3 => 3)
);
echo "<pre>";
print_r($items);

echo array_sum(array_column($items, 3)); // output 5

it will work for php 5.5+
 // PHP 5.5+
 echo array_sum(array_column($array, 'yourindexname')); // 

// PHP 4+
function sumArray($item) {
return $item['yourindex'];
}

echo array_sum(array_map('sumArray', $array));

/ PHP 5.3+
echo array_sum(array_map(
function($item) {
    return $item['yourindex'];
}, $items)
);



$sumvalue = array();

foreach ($array as $k=>$sub_array) {
  foreach ($sub_array as $id=>$value) {
  $sumvalue [$id]+=$value;
}
}

 print_r($sumvalue );

【讨论】:

    【解决方案2】:

    您可以执行以下操作:

    function getSumOfId($array, $id) {
       $sumOfId = 0;
    
       foreach($array as $arr) {
          $sumOfId += $arr[$id];
       }
       return $sumOfId;
    }
    

    这样您将遍历所有数组,并获得特定 ID 的完整总和。

    你可以这样使用getSumOfId($yourArray, 5)

    【讨论】:

      【解决方案3】:

      您可以使用array_reduce() 对目标值求和。

      $sum = array_reduce($arr, function($carry, $item){
          $carry += $item[5];
          return $carry;
      });
      echo $sum;
      

      检查代码结果在demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-01
        • 1970-01-01
        • 2017-01-12
        • 2014-12-12
        • 2019-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多