2013-02-23 65 views
2

我已经有我使用json_decode(),其输出的JSON文件作为一个数组的内容解析JSON文件添加了所有INT()值,这是数据输出的一个示例:从PHP阵列

array(1) { 
    ["petition"]=> 
    array(2) { 
     ["postal_districts"]=> 
     array(2257) { 
      ["DH4"]=> 
      int(12) 
      ["BT5"]=> 
      int(14) 
      ["WA9"]=> 
      int(72) 
      ["EH17"]=> 
      int(5) 
     } 
    } 
} 

我想从在“postal_districts”但此刻,我不知所措,我怎么能做到这一点加起来所有的int()值。

任何帮助,非常感谢。

+0

可能重复[如何选择我添加数组中的所有值?](http://stackoverflow.com/questions/6695140/php-add-up-values-in-object-array) – 2013-02-23 21:56:40

回答

8

如果他们都是整数,你可以尝试:

$sum = array_sum($arr['petition']['postal_districts']); 

(看是否array_sum帮助)

如果没有,先进行筛选:

$ints = array_filter($arr['petition']['postal_districts'], 'is_int'); 
$sum = array_sum($ints); 
+3

很好的使用数组函数而不是手动循环/检查。 – prodigitalson 2013-02-23 21:59:49

+0

就是这样!非常感谢 :) – Oliver 2013-02-23 22:00:04

3
$sum = 0; 
foreach($array['petition']['postal_districts'] as $val) 
    $sum += $val; 
echo $sum; 

你的意思是吗?

+1

如果数组的值混合,您可以通过用'is检测一下_int'或'is_numeric'取决于... – prodigitalson 2013-02-23 21:56:07

+0

@prodigitalson我现在,但用户没有指定所有的值是整数或混合。我建议整数。 – Winston 2013-02-23 21:58:00

+1

我知道......那个评论对他来说比你更重要。根据给出的信息,你的回答是正确的。 – prodigitalson 2013-02-23 21:58:42