[英]How do I sum values in array from certain indexes in loop
我正在嘗試對另一個數組提供的某些范圍內的數組值進行求和。
我已經嘗試過此功能
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)
現在我要在這里做的是:基於6月中有多少個條目(在這種情況下為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);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.