PHP - 将另一个元素分组到数组中的antoher元素中

时间:2017-07-23 19:01:43

标签: php arrays

基本上我从数据库中获得了大量数据。

现在,此数据将以编程级别显示为另一种数组格式。

有时,我在数据库级别对列进行分组。 但现在,在编程级别,如何将另一个元素分组到数组中的另一个元素。

我使用PHP。这是数据(数组)

Array
(
    [0] => Array
        (
            [kode_lapangan] => 01
            [date_start_booking] => 2017-07-24 11:00:00
            [bookings] => Array
                (
                )

        )

    [1] => Array
        (
            [kode_lapangan] => 01
            [date_start_booking] => 2017-07-24 08:00:00
            [bookings] => Array
                (
                )

        )

    [2] => Array
        (
            [kode_lapangan] => 01
            [date_start_booking] => 2017-07-24 12:00:00
            [bookings] => Array
                (
                )

        )

    [3] => Array
        (
            [kode_lapangan] => 02
            [date_start_booking] => 2017-07-24 08:00:00
            [bookings] => Array
                (
                )

        )

)

我需要一个这样的数组:

Array
(
    [0] => Array
        (
            [kode_lapangan] => 01
            [date_start_booking] => Array
                (
                    [0] => 2017-07-24 11:00:00
                    [1] => 2017-07-24 08:00:00
                    [2] => 2017-07-24 12:00:00
                )

        )
    [1] => Array
        (
            [kode_lapangan] => 02
            [date_start_booking] => 
                (
                    [0] => 2017-07-24 08:00:00
                )
        )
)

1 个答案:

答案 0 :(得分:1)

您可能想退后一步,看看是否可以让数据库执行大部分工作。

您可以轻松地将结果分组到sql中,如下所示:

选择kode_lapangan,GROUP_CONCAT(date_start_booking)作为日期FROM FROM GROUP BY kode_lapangan;

请参阅:https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html

我在这里假设mysql一分钟,但这适用于大多数数据库引擎。

这将以以下形式制作数组:

Array
(
    [0] => Array
    (
        [kode_lapangan] => 01
        [dates] => "2017-07-24 11:00:00,2017-07-24 08:00:00,2017-07-24 12:00:00"
            )

    )
    [1] => Array
    (
        [kode_lapangan] => 02
        [dates] => "2017-07-24 08:00:00"
    )
)

但如果那不是一个选项......你可以随时重建数组,因为Alive to die提到