0

私がそれを理解しようと頭を悩ませているので、誰かが助けてくれることを願っています。

私が作成している新しいシステムは、ユーザーが利用可能であるか利用できないかを延期します。2つのアレイがあります。

利用可能:

Array
(
    [0] => Array
        (
            [0] => 00:00:00
            [1] => 01:00:00
        )

    [1] => Array
        (
            [0] => 01:00:00
            [1] => 02:00:00
        )

    [2] => Array
        (
            [0] => 03:00:00
            [1] => 04:00:00
        )

    [3] => Array
        (
            [0] => 04:00:00
            [1] => 05:00:00
        )

)

利用できません:

Array
(
    [0] => Array
        (
            [0] => 02:00:00
            [1] => 03:00:00
        )

    [1] => Array
        (
            [0] => 05:00:00
            [1] => 06:00:00
        )

    [2] => Array
        (
            [0] => 06:00:00
            [1] => 07:00:00
        )

    [3] => Array
        (
            [0] => 07:00:00
            [1] => 08:00:00
        )

    [4] => Array
        (
            [0] => 08:00:00
            [1] => 09:00:00
        )

    [5] => Array
        (
            [0] => 09:00:00
            [1] => 10:00:00
        )

    [6] => Array
        (
            [0] => 10:00:00
            [1] => 11:00:00
        )

    [7] => Array
        (
            [0] => 11:00:00
            [1] => 12:00:00
        )

    [8] => Array
        (
            [0] => 12:00:00
            [1] => 13:00:00
        )

    [9] => Array
        (
            [0] => 13:00:00
            [1] => 14:00:00
        )

    [10] => Array
        (
            [0] => 14:00:00
            [1] => 15:00:00
        )

    [11] => Array
        (
            [0] => 15:00:00
            [1] => 16:00:00
        )

    [12] => Array
        (
            [0] => 16:00:00
            [1] => 17:00:00
        )

    [13] => Array
        (
            [0] => 17:00:00
            [1] => 18:00:00
        )

    [14] => Array
        (
            [0] => 18:00:00
            [1] => 19:00:00
        )

    [15] => Array
        (
            [0] => 19:00:00
            [1] => 20:00:00
        )

    [16] => Array
        (
            [0] => 20:00:00
            [1] => 21:00:00
        )

    [17] => Array
        (
            [0] => 21:00:00
            [1] => 22:00:00
        )

    [18] => Array
        (
            [0] => 22:00:00
            [1] => 23:00:00
        )

    [19] => Array
        (
            [0] => 23:00:00
            [1] => 00:00:00
        )

)

各配列には時間スロットがあります。午前12時〜午前1時、午前1時〜午前2時など。

しかし、私は時間をグループ化する方法を見つけようとしています。

利用可能:00:00:00-02:00:00および03:00:00-05:00:00および利用不可:05:00:00-00:00:00

誰かが解決策を提案できますか?

ありがとう。

-編集-私が何を求めているかを明確にするために:これは1日1人です。彼らが彼らが午後6時から午後10時の間に利用可能であると言った場合、それは時間として私に届きます。18:00:00-19:00:00、19:00:00-20:00:00など。ただし、18:00:00〜22:00:00が必要です。ありがとう。

この配列も使用できます。

Array

([0] =>配列([0] => 00:00:00 [1] => 01:00:00 [2] => A)

[1] => Array
    (
        [0] => 01:00:00
        [1] => 02:00:00
        [2] => A
    )

[2] => Array
    (
        [0] => 02:00:00
        [1] => 03:00:00
        [2] => U
    )

[3] => Array
    (
        [0] => 03:00:00
        [1] => 04:00:00
        [2] => A
    )

[4] => Array
    (
        [0] => 04:00:00
        [1] => 05:00:00
        [2] => A
    )

[5] => Array
    (
        [0] => 05:00:00
        [1] => 06:00:00
        [2] => U
    )

[6] => Array
    (
        [0] => 06:00:00
        [1] => 07:00:00
        [2] => U
    )

[7] => Array
    (
        [0] => 07:00:00
        [1] => 08:00:00
        [2] => U
    )

[8] => Array
    (
        [0] => 08:00:00
        [1] => 09:00:00
        [2] => U
    )

[9] => Array
    (
        [0] => 09:00:00
        [1] => 10:00:00
        [2] => U
    )

[10] => Array
    (
        [0] => 10:00:00
        [1] => 11:00:00
        [2] => U
    )

[11] => Array
    (
        [0] => 11:00:00
        [1] => 12:00:00
        [2] => U
    )

[12] => Array
    (
        [0] => 12:00:00
        [1] => 13:00:00
        [2] => U
    )

[13] => Array
    (
        [0] => 13:00:00
        [1] => 14:00:00
        [2] => U
    )

[14] => Array
    (
        [0] => 14:00:00
        [1] => 15:00:00
        [2] => U
    )

[15] => Array
    (
        [0] => 15:00:00
        [1] => 16:00:00
        [2] => U
    )

[16] => Array
    (
        [0] => 16:00:00
        [1] => 17:00:00
        [2] => U
    )

[17] => Array
    (
        [0] => 17:00:00
        [1] => 18:00:00
        [2] => U
    )

[18] => Array
    (
        [0] => 18:00:00
        [1] => 19:00:00
        [2] => U
    )

[19] => Array
    (
        [0] => 19:00:00
        [1] => 20:00:00
        [2] => U
    )

[20] => Array
    (
        [0] => 20:00:00
        [1] => 21:00:00
        [2] => U
    )

[21] => Array
    (
        [0] => 21:00:00
        [1] => 22:00:00
        [2] => U
    )

[22] => Array
    (
        [0] => 22:00:00
        [1] => 23:00:00
        [2] => U
    )

[23] => Array
    (
        [0] => 23:00:00
        [1] => 00:00:00
        [2] => U
    )

)。

しかし、私はそれらをグループ化する必要があります。ありがとう。

4

2 に答える 2

0

私が理解していることから..配列を2つのグループに分割したい

  • A: 利用可能
  • 〇:ご利用いただけません

配列フィルターを使用できます

$avialable =  array_filter($array,function($var) { return $var[2] == "A" ; });
$unavialabe =  array_filter($array,function($var) { return $var[2] == "U" ; });
于 2012-10-11T14:43:20.117 に答える
0

フォーマットされた文字列出力で終わりたいと思います。

配列キーを繰り返し処理し、両方の配列をチェックする必要があります。$availableすべてのユーザーが配列に存在すると仮定すると、$unavailable次のようなことを試すことができます。

$userSlots = array();

foreach(array_keys($available) as $userKey) {

    $userSlots[ $userKey ] = 'Available: ';

    foreach ($available[ $userKey ] as $slot) {
       $userSlots[ $userKey ] .= $slot[ 0 ] . ' - ' . $slot[ 1 ] . ', ';
    }

    $aggregatedSlots .= 'Unavailable: ';

    foreach ($unavailable[ $userKey ] as $slot) {
       $userSlots[ $userKey ] .= $slot[ 0 ] . ' - ' . $slot[ 1 ] . ', ';
    }
}

userKeys をキーとして、フォーマットされた「可用性」文字列を値として持つ配列を取得します。もちろん、末尾のコンマを避けるために、いくつかのインテリジェントなチェックと文字列の変更を追加する必要があります。

于 2012-10-11T12:19:37.000 に答える