簡體   English   中英

使用相同鍵的檢查點創建多維 PHP 數組

[英]Create a multidimensional PHP array with a checkpoint for same key

我正在嘗試使用 foreach 循環在 PHP 中創建一個多維數組。 我有一個用於存儲天數的天表和一個用於存儲當天打開和關閉時間和參考 ID 的小時表。 每天有兩個班次。 這是我迄今為止嘗試過的代碼:

foreach ($days as $value) {
            foreach ($value->hours as $key=>$val) {
                if (array_key_exists($value->name, $storeSchedule)) {
                    $storeSchedule[$value->name][] = array($val->opening_time => $val->closing_time);
                }else{
                    $storeSchedule[$value->name][] = array($val->opening_time => $val->closing_time);
                }
            }
        }

電流輸出:

Array
(
    [Mon] => Array
        (
            [0] => Array
                (
                    [11:00:00] => 02:00:00
                )
            [1] => Array
                (
                    [16:00:00] => 22:00:00
                )
        )
    [Tue] => Array
        (
            [0] => Array
                (
                    [11:00:00] => 02:00:00
                )
            [1] => Array
                (
                    [16:00:00] => 22:00:00
                )
        )
    [Wed] => Array
        (
            [0] => Array
                (
                    [11:00:00] => 02:00:00
                )
            [1] => Array
                (
                    [16:00:00] => 22:00:00
                )
        )
    [Thur] => Array
        (
            [0] => Array
                (
                    [11:00:00] => 02:00:00
                )
            [1] => Array
                (
                    [16:00:00] => 22:00:00
                )
        )
    [Fri] => Array
        (
            [0] => Array
                (
                    [11:00:00] => 02:00:00
                )
            [1] => Array
                (
                    [16:00:00] => 22:00:00
                )
        )
    [Sat] => Array
        (
            [0] => Array
                (
                    [11:30:00] => 15:30:00
                )
            [1] => Array
                (
                    [16:00:00] => 21:00:00
                )
        )
    [Sun] => Array
        (
            [0] => Array
                (
                    [11:30:00] => 15:30:00
                )
            [1] => Array
                (
                    [16:00:00] => 21:00:00
                )
        )
)

預期輸出:

Array
(
    [Sun] => Array
        (
            [11:30 AM] => 03:30 PM
            [04:00 PM] => 09:00 PM
        )
    [Mon] => Array
        (
            [11:00 AM] => 2:00 PM
            [04:00 PM] => 10:00 PM
        )
    [Tue] => Array
        (
            [11:00 AM] => 2:00 PM
            [04:00 PM] => 10:00 PM
        )
    [Wed] => Array
        (
            [11:00 AM] => 2:00 PM
            [04:00 PM] => 10:00 PM
        )
    [Thu] => Array
        (
            [11:00 AM] => 2:00 PM
            [04:00 PM] => 10:00 PM
        )
    [Fri] => Array
        (
            [11:00 AM] => 2:00 PM
            [04:00 PM] => 10:00 PM
        )
    [Sat] => Array
        (
            [11:30 AM] => 03:30 PM
            [04:00 PM] => 09:00 PM
        )
)

任何人都可以幫助我嗎?

我找到了問題的解決方案。 請在下面找到更正的 foreach 循環:

foreach ($days as $value) {
            foreach ($value->hours as $key=>$val) {
                if (array_key_exists($value->name, $storeSchedule)) {
                    foreach ($storeSchedule[$value->name] as $k => $v) {
                        $ee=array($k => $v, $val->opening_time => $val->closing_time);
                    }
                    unset($storeSchedule[$value->name]);
                    $storeSchedule[$value->name] = $ee;
                }else{
                    $storeSchedule[$value->name] = array($val->opening_time => $val->closing_time);
                }
            }
        }

暫無
暫無

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

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