簡體   English   中英

如何從循環中的某些索引求和數組中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM