Hướng dẫn array group by date php - nhóm mảng theo ngày php

1

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một mảng:

Array
[
    [0] => Array
        [
            [id] => 81
            [placed] => 2013-09-19 16:32:53
            [sub_total] => 786
        ]

    [1] => Array
        [
            [id] => 80
            [placed] => 2013-09-19 16:32:06
            [sub_total] => 780
        ]

    [2] => Array
        [
            [id] => 79
            [placed] => 2013-09-18 17:06:48
            [sub_total] => 786
        ]

    [3] => Array
        [
            [id] => 78            
            [placed] => 2013-09-18 17:05:02
            [sub_total] => 756
        ]

    [4] => Array
        [
            [id] => 77          
            [placed] => 2013-09-17 17:02:53
            [sub_total] => 786
        ]

    [5] => Array
        [
            [id] => 76
            [placed] => 2013-09-16 17:02:53
            [sub_total] => 756
        ]
]

Có thể nhóm dữ liệu này theo ngày và tóm tắt số lượng phụ để nhận mảng đầu ra:

 Array
    [
        [0] => Array
            [
                [placed] => 2013-09-19
                [sub_total] => 786 + 780
            ]

        [2] => Array
            [
                [placed] => 2013-09-18
                [sub_total] => 786 + 756
            ]

        [3] => Array
            [
                [placed] => 2013-09-17 17:02:53
                [sub_total] => 786
            ]

        [4] => Array
            [
                [placed] => 2013-09-16 17:02:53
                [sub_total] => 756
            ]
    ]

Mickmackusa

39,4K11 Huy hiệu vàng76 Huy hiệu bạc117 Huy hiệu đồng11 gold badges76 silver badges117 bronze badges

Hỏi ngày 25 tháng 9 năm 2013 lúc 5:56Sep 25, 2013 at 5:56

1

$output=array[];
foreach[$yourArray as $values]
{
 $d=date["Y-m-d",strtotime[$values["placed"]]];
 $output[$d]["sub_total"]+=$values["sub_total"];
}

print_r[$output];

Vĩ cầm

Tín dụng: Mảng ban đầu được sử dụng trên fiddle này được lấy từ câu trả lời của Jason Ooo bên dưới.

Đã trả lời ngày 25 tháng 9 năm 2013 lúc 6:00Sep 25, 2013 at 6:00

Hanky ​​pankyhanky pankyHanky Panky

46.3k8 Huy hiệu vàng70 Huy hiệu bạc95 Huy hiệu Đồng8 gold badges70 silver badges95 bronze badges

3

Tôi cũng đã thử nghiệm điều này: //phpfiddle.org/main/code/rzv-ngp


Đã trả lời ngày 25 tháng 9 năm 2013 lúc 6:13Sep 25, 2013 at 6:13

Jason Ooojason OOOJason OOO

3.5572 Huy hiệu vàng25 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges25 silver badges31 bronze badges

3

Bạn có thể có loại mảng đó vào thời gian truy vấn. Cái gì đó như

select date_field_name,other_field from table_name group by Day[date_feild_name];

Sau đó, bạn có thể sử dụng Foreach để làm việc với dữ liệu của mỗi ngày!

Đã trả lời ngày 25 tháng 9 năm 2013 lúc 6:03Sep 25, 2013 at 6:03

Reza Saberireza SaberiReza Saberi

7.0629 Huy hiệu vàng45 Huy hiệu bạc76 Huy hiệu đồng9 gold badges45 silver badges76 bronze badges

Thử sử dụng truy vấn phụ

     select field_name,DAY[date_field] as date,[select sum[sub_total] where DAY[date_field]=date] as sub_total from table_name group by day[date_field]

Đã trả lời ngày 25 tháng 9 năm 2013 lúc 6:55Sep 25, 2013 at 6:55

NikhilnikhilNikhil

Huy hiệu bạc 1011 Huy hiệu đồng1 silver badge9 bronze badges

Try this code

Đã trả lời ngày 25 tháng 9 năm 2013 lúc 7:38Sep 25, 2013 at 7:38

Bài Viết Liên Quan

Chủ Đề