php从数组块中获取值并求它们

时间:2015-04-15 07:38:17

标签: php arrays

我有一个数组。我试图像这样打印数组的值

print_r($travellers_data['variation']);

所以它向我展示了这样的数据。

Array
(
    [adults_travelers] => 1
    [child_travelers] => 2
    [infant_travelers] => 4
)

Array
(
    [adults_travelers] => 12
    [child_travelers] => 11
    [infant_travelers] => 14
)

在这里你可以看到有两个包含不同年龄段旅行者的数组。 现在我想得到阵列块的总旅行者总和。所以结果应该是这样的

total_travellers = adults_travelers + child_travelers + infant_travelers;
total_travellers = 13 + 13 + 18 = 44;

所以有人告诉我如何获得两个数组块的总和。任何帮助和建议都会非常明显。感谢

3 个答案:

答案 0 :(得分:0)

由于$travellers_data['variation']是一个数组数组,我们需要遍历它,然后对各个数组求和并将它们加到我们的总数中。 php有一个函数array_sum,它可以方便地对数组的元素进行总计,并且只需查看关联数组的值即可。我们可以将它们组合成一个非常简单的解决方案:

$sum = 0;
foreach($travellers_data['variation'] as $arr)
{
  $sum += array_sum($arr);
}

这假设您的数组仅包含问题中显示的旅行者信息,而不包含其他一些值

答案 1 :(得分:0)

$travelers = [
    ['adults_travelers' => 1, 'child_travelers' => 2, 'infant_travelers' => 4],
    ['adults_travelers' => 12, 'child_travelers' => 11, 'infant_travelers' => 14]
];

$sum = array_reduce($travelers, function ($sum, array $array) {
    return $sum + array_sum($array);
});

答案 2 :(得分:0)

感谢您的回答。我就像这样做了我自己

$total_persons = array();
foreach($travellers_datas as $travellers_data) {
  $adult_travellers = $travellers_data['variation']['adults_travelers'];
  $child_travelers = $travellers_data['variation']['child_travelers'];
  $infant_travelers = $travellers_data['variation']['infant_travelers'];
  $total_travellers = $adult_travellers + $child_travelers +    $infant_travelers;
  array_push($total_persons, $total_travellers);
}
  $total_travellers_person = array_sum($total_persons);