注意:这里不是简单的累加电话时间,电话时间需要通过PHP函数单独计算
我目前有以下代码
$i = array(1,2,3,4,5,6,7,8,9,10,11,12);
$j = array();
foreach ($i as $item) {
$month_query_phonetime = $conn->query("SELECT phone_time FROM bigscreen_daily_data WHERE MONTH(work_date) = {$item} AND YEAR(work_date) = YEAR(CURDATE()) AND user_id = 28");
while ($dataitem = $month_query_phonetime->fetch_object()) {
$j[][$item] = point_for_phone_time($dataitem->phone_time);
}
}
print_r($j);
结果如下
Array
(
[0] => Array
(
[1] => 0
)
[1] => Array
(
[1] => 10
)
[2] => Array
(
[2] => 48
)
[3] => Array
(
[2] => 24
)
[4] => Array
(
[3] => 48
)
[4] => Array
(
[3] => 48
)
)
我正在尝试获取所有 [1] => value
、[2]=> value
等的总和作为一个变量并将其传递给 indual item $j[][$item]
以便它可以用于进一步处理
我试过
while ($dataitem = $month_query_phonetime->fetch_object()) {
$m = $m + point_for_phone_time($dataitem->phone_time);
}
$j[][$item] = $m;
它给我的值(value)如下
Array
(
[0] => Array
(
[1] => {value1}
)
[1] => Array
(
[2] => {value1+value2}
)
)
因此为了获得所需的结果,这是处理此问题的正确格式。
最佳答案
如果我理解正确并且您正在尝试对每个 user_id
的 phone_time
求和,为什么不让数据库为您完成繁重的工作并使用聚合查询:
SELECT user_id, SUM(phone_time) AS sum_phone_time
FROM bigscreen_daily_data
GROUP BY user_id
它的执行速度可能也比遍历 user_id
、为每个用户查询所有 phone_time
并自行求和要快。
关于PHP:对键相同的子数组的所有值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53657923/