duanpo1498 2014-08-14 06:14
浏览 78
已采纳

多维数组的最大值

I have this Array

  Array
(
    [2014-08-14] => Array
        (
            [18:00:00] => Array
                (
                    [6] => Array
                        (
                            [price] => 15.36
                            [avail_clean] => 5
                            [avail_noclean] => 6
                        )

                    [7] => Array
                        (
                            [price] => 17.35
                            [avail_clean] => 2
                            [avail_noclean] => 3
                        )

                )

            [19:00:00] => Array
                (
                    [6] => Array
                        (
                            [price] => 15.36
                            [avail_clean] => 5
                            [avail_noclean] => 6
                        )

                    [7] => Array
                        (
                            [price] => 17.35
                            [avail_clean] => 2
                            [avail_noclean] => 3
                        )

                )

        )

)

How can I get the following for 6 & 7 seperately: - Sum of price - max of avail_clean - max of avail_noclean

I got that far for the price:

foreach ($bookable as $date=>$key) {
    foreach ($key as $time=>$key2) {
        foreach($key2 as $room=>$key3){
            foreach($key3 as $price=>$key4){
                if($price == "price"){
                    if(isset($sumRoom[$room]['total'])){
                        $sumRoom[$room]['total'] += $key4;
                    }else{
                        $sumRoom[$room]['total'] = $key4;
                    }
                }
            }
        }

    }
}

Gives me this

Array(
[6] => Array
    (
        [total] => 30,72
    )

[7] => Array
    (
        [total] => 34,7
    )

)

But what about the max(), where should I put that?

  • 写回答

1条回答 默认 最新

  • duanmei1536 2014-08-14 06:37
    关注
    foreach ($bookable as $date=>$times) {
        foreach ($times as $time=>$rooms) {
            foreach($rooms as $room=>$options){ $sumRoom[$room]['total'] = 0;
                foreach($options as $option=>$value){
    
                    if($option == "price"){
                        $sumRoom[$room]['total'] += $value;
                    }
                    if($option == "avail_clean"){
                        $avail_clean[$room][] = $value;
                    }
                    if($option == "avail_noclean"){
                        $avail_noclean[$room][] = $value;
                    }
    
                }
                $sumRoom[$room]['avail_clean_max'] = max($avail_clean[$room]);
                $sumRoom[$room]['avail_noclean'] = max($avail_noclean[$room]);
            }
        }
    }
    

    I've edited my answer.. I've merged all in one array i.e. $sumRoom

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 CSS实现渐隐虚线框
  • ¥15 有没有帮写代码做实验仿真的
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真