Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的数组_和-所有值_Php - Fatal编程技术网

php中的数组_和-所有值

php中的数组_和-所有值,php,Php,我想对数组中的所有值求和 比如说 { "data": [ { "message_count": 14051 }, { "message_count": 12731 }, { "message_count": 7867 }, { "message_count": 6053 }, { "message_count": 4 } ] } 这就是我的代码:

我想对数组中的所有值求和 比如说

{
  "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”。有什么想法吗?
非常感谢

这是因为您的阵列是二维的
array\u sum()
需要一维数组。要使其成为一维,请在数组中循环,并使用
array\u sum()
,如下所示:

$new = array();
foreach ($json_a['data'] as $key => $innerArr) {
    $new[] = $innerArr['message_count'];
}

echo array_sum($new); // 40706

这是因为您的阵列是二维的
array\u sum()
需要一维数组。要使其成为一维,请在数组中循环,并使用
array\u sum()
,如下所示:

$new = array();
foreach ($json_a['data'] as $key => $innerArr) {
    $new[] = $innerArr['message_count'];
}

echo array_sum($new); // 40706
试试这个:

array_sum(array_column($json_a['data'], 'message_count'));
输出:
40706

备选方案:

您可以通过循环执行此操作:

array_sum()
将无法工作,因为您没有正确格式化数组(1D数组)

$sum=0;
对于($i=0;$i请尝试以下方法:

array_sum(array_column($json_a['data'], 'message_count'));
输出:
40706

备选方案:

您可以通过循环执行此操作:

array_sum()
将无法工作,因为您没有正确格式化数组(1D数组)

$sum=0;

对于($i=0;$iadd,$counting\u base的输出添加$counting的输出_base@user2527983字体看到我的上衣了吗answer@user2527983字体见我的答案