Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays - Fatal编程技术网

Php 如何对数组中的值求和

Php 如何对数组中的值求和,php,arrays,Php,Arrays,我试图对DB中的所有选择COUNT进行求和,以获得员工的总工时。 $theWeek以时间戳格式包含当前周的天数,$vendur是从HTML和JS获取的员工id 这是我打印($weekStat)时得到的结果,这很好,因为在星期三(图例2),员工工作6小时,其余0小时: Array ( [0] => Array ( [sum_count] => 0 ) [1] => Array (

我试图对DB中的所有
选择COUNT
进行求和,以获得员工的总工时。
$theWeek
以时间戳格式包含当前周的天数,
$vendur
是从HTML和JS获取的员工id

这是我打印($weekStat)时得到的结果,这很好,因为在星期三(图例2),员工工作6小时,其余0小时:

Array
(
    [0] => Array
        (
            [sum_count] => 0
        )

    [1] => Array
        (
            [sum_count] => 0
        )

    [2] => Array
        (
            [sum_count] => 6
        )

    [3] => Array
        (
            [sum_count] => 0
        )

    [4] => Array
        (
            [sum_count] => 0
        )

    [5] => Array
        (
            [sum_count] => 0
        )

    [6] => Array
        (
            [sum_count] => 0
        )

)
问题是当I
echo($total)时&
echo((int)$value)
对于每个
$total
我得到
0
,对于每个
$value
我只得到
1
。我需要获得
$total=6

这是我的密码:

     function getHisStats($vendeur, $theWeek){
        $connexion = connexion();
        $weekStat = array(); // stock les plannings de chaque semaine
 
        $somme = 0;
        $total = 0;

        // On récupere chaque jour de la semaine et on assigne un planning à chaque jour
        for($i = 0; $i < 7; $i++){
            // Creating YY-MM-DD format for fetch in DB
            $dateCurrent = getdate($theWeek[$i]);
            $day = $dateCurrent['mday'];
            $month = $dateCurrent['mon'];
            $year = $dateCurrent['year'];

            // Used to fetch date
            $jour = $year. '-' . $month . '-' . $day;

            // Counting the number of instances of id_planning
            $request_travail = $connexion->prepare("SELECT COUNT(id_planning) AS sum_count FROM plannings WHERE id_employe = ? AND date_planning = ? AND (id_affectation = ? OR id_affectation = ? OR id_affectation = ? OR id_affectation = ?) AND id_validation = ?");
            $request_travail->execute(array($vendeur, $jour, 0, 2, 8, 9, 1));
            $resultat_travail = $request_travail->fetchAll(PDO::FETCH_ASSOC);

            // Stocking the results
            array_push($weekStat, $resultat_travail[0]);
        }
        foreach($weekStat as $key => $value){
            echo($total); // I get 7 at the end because $value is always = 1
            echo((int)$value); // I get 1 everytime
            $total = $total + (int)$value;
        }
        return $weekStat;
    }
函数getHisStats($vendur,$theWeek){
$connexion=connexion();
$weekStat=array();//股票价格
$somme=0;
$total=0;
//关于《和平日》和《计划日》的分配
对于($i=0;$i<7;$i++){
//为数据库中的fetch创建YY-MM-DD格式
$dateCurrent=getdate($theWeek[$i]);
$day=$dateCurrent['mday'];
$month=$dateCurrent['mon'];
$year=$dateCurrent['year'];
//用于获取日期
$jour=$year.'-'.$month.'-'.$day;
//计算id_规划的实例数
$request\u travail=$connexion->prepare(“选择COUNT(id\u planning)作为id\u employe=?和date\u planning=?和(id\u affectation=?或id\u affectation=?或id\u affectation=?)和id\u validation=?)的计划总数”;
$request_travail->execute(数组($vendur,$jour,0,2,8,9,1));
$resultat_-travail=$request_-travail->fetchAll(PDO::FETCH_-ASSOC);
//储存结果
数组_push($weekStat,$resultat_-travail[0]);
}
foreach($key=>$value的weekStat){
echo($total);//我最后得到7,因为$value总是=1
echo((int)$value);//每次我得到1
$total=$total+(int)$value;
}
返回$weekStat;
}

记录单个结果时,每次都要添加数据行。由于您使用的唯一值是
sum\u count
,因此可以直接添加此值

array_push($weekStat, $resultat_travail[0]['sum_count']);
然后,您应该能够使用
array\u sum()
而不是循环来计算总

$total = array_sum($weekStat);

您还可以使用SQL进行求和,这可能值得研究。

这是因为您试图将一个数组的形式转换为
['sum\u count'=>6]
“to int”,这没有多大意义。您应该正确访问该数组中键
sum\u count
下包含的值。