簡體   English   中英

用PHP合並一些數組數據,具體取決於范圍

[英]Merge some array datas depending a range with PHP

我有這個數組:

Array
(
    [0] => Array
        (
            [Sum] => 125.00
            [PastDays] => 530
        )

    [1] => Array
        (
            [Sum] => 123.00
            [PastDays] => 110
        )

    [2] => Array
        (
            [Sum] => 500.00
            [PastDays] => 5
        )

    [3] => Array
        (
            [Sum] => 500.00
            [PastDays] => 1
        )

)

我將合並這些數據以在基於PAY_Nb_Days數組上具有此類型:

  • 如果PAY_Nb_Days030之間。
  • 如果PAY_Nb_Days3160之間。
  • 如果PAY_Nb_Days6190之間。
  • 如果PAY_Nb_Days91120之間。
  • 如果PAY_Nb_Days高於121

所以,像這樣:

Array
(
    ['Between 0 and 30'] => Array
        (
            [Sum] => 1000.00
        )

    ['Between 31 and 60'] => Array
        (
            [Sum] => 0.00
        )

    ['Between 61 and 90'] => Array
        (
            [Sum] => 0.00
        )

    ['Between 91 and 120'] => Array
        (
            [Sum] => 123.00
        )

    ['Hight than 121'] => Array
        (
            [Sum] => 125.00
        )

)

您能告訴我從哪里開始嗎?

這是我嘗試的:

foreach($items as $item) {
    if($item[PastDays] <= 30) { $sum_0_to_30 += $item['Sum']; } 
    if($item[PastDays] >= 31 && $item[PastDays] <= 60) { $sum_31_to_60 += $item['Sum']; }   
    if($item[PastDays] >= 61 && $item[PastDays] <= 90) { $sum_61_to_90 += $item['Sum']; }   
    if($item[PastDays] >= 91 && $item[PastDays] <= 120) { $sum_91_to_120 += $item['Sum']; } 
    if($item[PastDays] >= 121) { $sum_121 += $item['Sum']; }    
}

謝謝。

$arr = [
   'Between 0 and 30'   => ['Sum' => 0],
    'Between 31 and 60'  => ['Sum' => 0],
    'Between 61 and 90'  => ['Sum' => 0],
    'Between 91 and 120' => ['Sum' => 0],
    'Hight than 121'     => ['Sum' => 0],
];





   foreach($items as $item){
         switch($item['PastDays']){
             case ($item['PastDays'] < 31):
                 $arr['Between 0 and 30']['Sum'] += $item['Sum'];
                 break;
             case ($item['PastDays'] < 61):
                 $arr['Between 31 and 60']['Sum'] += $item['Sum'];
                 break;
             case ($item['PastDays'] < 91):
                 $arr['Between 61 and 90']['Sum'] += $item['Sum'];
                 break;
             case ($item['PastDays'] < 121):
                 $arr['Between 91 and 120']['Sum'] += $item['Sum'];
                 break;
             default:
                 $arr['Hight than 121']['Sum'] += $item['Sum'];
                 break;
          }
    }

$arr將包含您需要的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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