php - 如何从循环中的某些索引对数组中的值求和
问题描述
我正在尝试对另一个数组提供的特定范围内的数组值求和。
我试过这个功能
function sumArray($array, $min, $max) {
$sum = 0;
foreach ($array as $k => $v) {
if ($k >= $min && $k <= $max) {
$sum += $v;
}
}
return $sum;
}
如果我当然对数字进行硬编码,这可以工作,但我不知道如何让这个工作在循环中
所以我有这个日期数组
array(3) {
["June"]=> int(4)
["July"]=> int(31)
["August"]=> int(29)
}
我有这个 daily_values 数组
array(64) {
[0]=> int(8)
[1]=> int(6)
[2]=> int(10)
[3]=> int(15)
[4]=> int(10)
[5]=> int(9)
[6]=> int(9)
.
.
.
[63] => int(10)
现在我想在这里做的是:基于例如 June 中有多少条目,在这种情况下为 4,我想获得 daily_values 数组中的值的总和,如下所示:
第一次循环迭代将对daily_values数组中的值求和,从0到3,第二次循环迭代将对从4到34的值求和,第三次循环迭代将对从35到63的值求和,依此类推。
所以我想要的最后一件事是拥有一个像这样的数组
["sum of 0,3", "sum of 4,34", "sum of 35,63"]
这里只是一个注释,这个数组要大得多,但我只是为了提问而把它缩短了。
解决方案
我试图理解你的问题,这就是我认为你想要实现的目标。我创建了一个类似的测试,它工作正常。希望它以某种方式帮助你。
<?php
$june = [1,1,1,1];
$july = [1,1];
$august = [1,1,1,1];
$months = array(
'June' => $june,
'July' => $july,
'August' => $august,
);
$daily = [1,1,1,1,5,5,10,10,10,10,2,2,2,2,2];
$sum_arr = array();
$i = 0;
foreach($months as $key=>$month){
$month_count = $month;
$month_sum = 0;
while($month_count > 0){
$month_sum += $daily[$i];
$i++;
$month_count--;
}
$sum_arr[$key] = $month_sum;
}
echo '<pre>';
print_r($sum_arr);
?>
推荐阅读
- wso2 - WSO Developer Studio 6.6.0 或 Integration Studio 7.2.0 中的 jaggery 项目
- react-native - 来自 react-native-expo-image-cache 库的 Image 组件的道具类型警告失败
- vba - Selenium XPath 对象不可交互
- python - AWS lambda:Python 类型错误 concat str 到字节
- c - 了解 nostdlib C 程序的 ELF 二进制大小
- java - Java允许这种转换吗?
- reactjs - Material-UI:将道具传递给 React 中的 makestyle 时,类型“{}”上不存在属性“X”
- python - 使用python if-else三元运算符时else with string语句的含义是什么?
- javascript - 'TypeError: name.push is not a function' 同时将字符串推入空数组
- python - 在python中更改json文件中的值