我想从我的数组中加总所有值 例如
{
"data": [
{
"message_count": 14051
},
{
"message_count": 12731
},
{
"message_count": 7867
},
{
"message_count": 6053
},
{
"message_count": 4
}
]
}
那是我的代码:
<?php
$messages_count = file_get_contents('baza.html');
$json_a=json_decode($messages_count,true);
$counting_base = ($json_a['data']);
echo array_sum($counting_base);
?>
但我仍然得到'0'。有任何想法吗? 非常感谢你
答案 0 :(得分:4)
这是因为你的数组是二维的。 array_sum()
需要一维数组。要使它成为一维的,循环遍历数组,并使用array_sum()
,如下所示:
$new = array();
foreach ($json_a['data'] as $key => $innerArr) {
$new[] = $innerArr['message_count'];
}
echo array_sum($new); // 40706
答案 1 :(得分:2)
试试这个:
array_sum(array_column($json_a['data'], 'message_count'));
输出:40706
<强>替代:强>
你可以通过循环来完成:
array_sum()
将无法正常工作,因为您没有正确格式化数组(1D数组)。
$sum = 0;
for($i=0; $i<count($counting_base); $i++)
{
$sum += $counting_base['message_count'];
}
echo "Total = ". $sum;