Организуйте массив рабочих часов (PHP) - PullRequest
0 голосов
/ 21 июня 2020

Итак, у меня есть массив PHP, который необходимо отобразить в сжатом (удобочитаемом) виде:

[business_hours] => Array
        (
            [0] => Array
                (
                    [closed] => 1
                    [open_from] => 
                    [open_to] => 
                )

            [1] => Array
                (
                    [closed] => 
                    [open_from] => 11.00 am
                    [open_to] => 5.00 pm
                )

            [2] => Array
                (
                    [closed] => 1
                    [open_from] => 
                    [open_to] => 
                )

            [3] => Array
                (
                    [closed] => 1
                    [open_from] => 
                    [open_to] => 
                )

            [4] => Array
                (
                    [closed] => 
                    [open_from] => 11.00 am
                    [open_to] => 5.00 pm
                )

            [5] => Array
                (
                    [closed] => 
                    [open_from] => 3.00 pm
                    [open_to] => 5.00 pm
                )

            [6] => Array
                (
                    [closed] => 
                    [open_from] => 1.00 pm
                    [open_to] => 7.00 pm
                )

        )

[0] = от воскресенья до [6] = суббота.

Ниже приведены примеры того, как я хотел бы отображать эти часы работы. Я могу легко получить закрытые дни, но группировка открытых дней на основе совпадения часов оказывается сложной задачей. Есть предложения, как лучше всего go узнать об этом?

Открыто каждый день в одни и те же часы:

  • Открыто ежедневно с X.XX - X.XX.

Открыто каждый день в те же часы, но закрыто в определенные дни:

  • Открыто ежедневно с X.XX - X.XX (закрыто xxx, xxx)

Часы работы отличаются от повседневных (как в массиве примеров):

  • Открыто Пн, Чт с X.XX - X.XX.
  • Открыто Пт с X.XX по X.XX.
  • Открыто сб с X.XX по X.XX.
  • Закрыто Вс, Вт, Ср
...