繁体   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