检查数组值是否更改为foreach循环php?

时间:2014-12-10 14:16:31

标签: php arrays

我们有这样的数组:

Array(
[0]=>Array([HospitalName]=>'h1' [count]=>23)
[1]=>Array([HospitalName]=>'h1' [count]=>25)
[2]=>Array([HospitalName]=>'h1' [count]=>40)
[3]=>Array([HospitalName]=>'h1' [count]=>50)
[4]=>Array([HospitalName]=>'h1' [count]=>23)
[5]=>Array([HospitalName]=>'h2' [count]=>44)
[6]=>Array([HospitalName]=>'h2' [count]=>52)
[7]=>Array([HospitalName]=>'h2' [count]=>49)

)

我想计算h1和h2计数值之和。

sum of => h1[count]=>161
sum of => h2[count]=>145

我该如何处理PHP?

2 个答案:

答案 0 :(得分:1)

您可以使用另一个容器来保存该数组中这些值的总和:

$sum = array();
foreach($array as $values) {
    // simple initialization
    if(!isset($sum[$values['HospitalName']])) {
        $sum[$values['HospitalName']] = 0;
    }
    $sum[$values['HospitalName']] += $values['count'];
}

基本上,您只需使用HospitalName作为密钥,然后每次相应的密钥在循环中匹配时,它只会将其加到指定的医院名称。

Here's what $sum would look like

答案 1 :(得分:1)

使用foreach循环:

 $sums = [];

 foreach ($myArray as $values) {
    if (isset($sums[$values['HospitalName']])) {
        $sums[$values['HospitalName']] += $values['count'];
    } else {
        $sums[$values['HospitalName']] = $values['count'];
    }
 }