powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP разбить массив по дате
5 сообщений из 5, страница 1 из 1
PHP разбить массив по дате
    #39312103
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вот такой массив результат принт_р
Array
(
[0] => Array
(
[date] => 2016-09-01
[type] => mail
[count] => 248
)

[1] => Array
(
[date] => 2016-09-01
[type] => lk
[count] => 31
)

[2] => Array
(
[date] => 2016-09-01
[type] => operator
[count] => 1
)

[3] => Array
(
[date] => 2016-09-01
[type] => error
[count] => 296
)

[4] => Array
(
[date] => 2016-09-01
[type] => fbl
[count] => 496
)

[5] => Array
(
[date] => 2016-09-02
[type] => mail
[count] => 240
)

[6] => Array
(
[date] => 2016-09-02
[type] => lk
[count] => 17
)

[7] => Array
(
[date] => 2016-09-02
[type] => error
[count] => 13
)

[8] => Array
(
[date] => 2016-09-02
[type] => fbl
[count] => 416
)

[9] => Array
(
[date] => 2016-09-03
[type] => mail
[count] => 168
)

[10] => Array
(
[date] => 2016-09-03
[type] => lk
[count] => 18
)

[11] => Array
(
[date] => 2016-09-03
[type] => error
[count] => 11
)

[12] => Array
(
[date] => 2016-09-03
[type] => fbl
[count] => 328
)

[13] => Array
(
[date] => 2016-09-04
[type] => mail
[count] => 233
)

[14] => Array
(
[date] => 2016-09-04
[type] => lk
[count] => 23
)

[15] => Array
(
[date] => 2016-09-04
[type] => error
[count] => 137
)

[16] => Array
(
[date] => 2016-09-04
[type] => fbl
[count] => 340
)

[17] => Array
(
[date] => 2016-09-05
[type] => mail
[count] => 311
)

[18] => Array
(
[date] => 2016-09-05
[type] => lk
[count] => 31
)

[19] => Array
(
[date] => 2016-09-05
[type] => error
[count] => 655
)

[20] => Array
(
[date] => 2016-09-05
[type] => fbl
[count] => 490
)

[21] => Array
(
[date] => 2016-09-06
[type] => mail
[count] => 299
)

[22] => Array
(
[date] => 2016-09-06
[type] => lk
[count] => 29
)

[23] => Array
(
[date] => 2016-09-06
[type] => error
[count] => 1969
)

[24] => Array
(
[date] => 2016-09-06
[type] => fbl
[count] => 455
)

[25] => Array
(
[date] => 2016-09-07
[type] => mail
[count] => 297
)

[26] => Array
(
[date] => 2016-09-07
[type] => lk
[count] => 37
)

[27] => Array
(
[date] => 2016-09-07
[type] => operator
[count] => 1
)

[28] => Array
(
[date] => 2016-09-07
[type] => error
[count] => 1002
)

[29] => Array
(
[date] => 2016-09-07
[type] => fbl
[count] => 485
)

[30] => Array
(
[date] => 2016-09-08
[type] => mail
[count] => 280
)

[31] => Array
(
[date] => 2016-09-08
[type] => lk
[count] => 34
)

[32] => Array
(
[date] => 2016-09-08
[type] => error
[count] => 980
)

[33] => Array
(
[date] => 2016-09-08
[type] => fbl
[count] => 437
)

[34] => Array
(
[date] => 2016-09-09
[type] => mail
[count] => 270
)

[35] => Array
(
[date] => 2016-09-09
[type] => lk
[count] => 36
)

[36] => Array
(
[date] => 2016-09-09
[type] => error
[count] => 1605
)

[37] => Array
(
[date] => 2016-09-09
[type] => fbl
[count] => 434
)

[38] => Array
(
[date] => 2016-09-10
[type] => mail
[count] => 191
)

[39] => Array
(
[date] => 2016-09-10
[type] => lk
[count] => 17
)

[40] => Array
(
[date] => 2016-09-10
[type] => error
[count] => 444
)

[41] => Array
(
[date] => 2016-09-10
[type] => fbl
[count] => 288
)

[42] => Array
(
[date] => 2016-09-11
[type] => mail
[count] => 209
)

[43] => Array
(
[date] => 2016-09-11
[type] => lk
[count] => 15
)

[44] => Array
(
[date] => 2016-09-11
[type] => error
[count] => 150
)

[45] => Array
(
[date] => 2016-09-11
[type] => fbl
[count] => 316
)

[46] => Array
(
[date] => 2016-09-12
[type] => mail
[count] => 281
)

[47] => Array
(
[date] => 2016-09-12
[type] => lk
[count] => 29
)

[48] => Array
(
[date] => 2016-09-12
[type] => error
[count] => 145
)

[49] => Array
(
[date] => 2016-09-12
[type] => fbl
[count] => 418
)

[50] => Array
(
[date] => 2016-09-13
[type] => mail
[count] => 317
)

[51] => Array
(
[date] => 2016-09-13
[type] => lk
[count] => 41
)

[52] => Array
(
[date] => 2016-09-13
[type] => operator
[count] => 1
)

[53] => Array
(
[date] => 2016-09-13
[type] => error
[count] => 131
)

[54] => Array
(
[date] => 2016-09-13
[type] => fbl
[count] => 455
)

[55] => Array
(
[date] => 2016-09-14
[type] => mail
[count] => 284
)

[56] => Array
(
[date] => 2016-09-14
[type] => lk
[count] => 40
)

[57] => Array
(
[date] => 2016-09-14
[type] => error
[count] => 142
)

[58] => Array
(
[date] => 2016-09-14
[type] => fbl
[count] => 449
)

[59] => Array
(
[date] => 2016-09-15
[type] => mail
[count] => 302
)

[60] => Array
(
[date] => 2016-09-15
[type] => lk
[count] => 30
)

[61] => Array
(
[date] => 2016-09-15
[type] => operator
[count] => 1
)

[62] => Array
(
[date] => 2016-09-15
[type] => error
[count] => 204
)

[63] => Array
(
[date] => 2016-09-15
[type] => fbl
[count] => 446
)

[64] => Array
(
[date] => 2016-09-16
[type] => mail
[count] => 256
)

[65] => Array
(
[date] => 2016-09-16
[type] => lk
[count] => 34
)

[66] => Array
(
[date] => 2016-09-16
[type] => operator
[count] => 1
)

[67] => Array
(
[date] => 2016-09-16
[type] => error
[count] => 181
)

[68] => Array
(
[date] => 2016-09-16
[type] => fbl
[count] => 399
)

[69] => Array
(
[date] => 2016-09-17
[type] => mail
[count] => 180
)

[70] => Array
(
[date] => 2016-09-17
[type] => lk
[count] => 19
)

[71] => Array
(
[date] => 2016-09-17
[type] => error
[count] => 196
)

[72] => Array
(
[date] => 2016-09-17
[type] => fbl
[count] => 334
)

[73] => Array
(
[date] => 2016-09-18
[type] => mail
[count] => 215
)

[74] => Array
(
[date] => 2016-09-18
[type] => lk
[count] => 23
)

[75] => Array
(
[date] => 2016-09-18
[type] => error
[count] => 189
)

[76] => Array
(
[date] => 2016-09-18
[type] => fbl
[count] => 354
)

[77] => Array
(
[date] => 2016-09-19
[type] => mail
[count] => 323
)

[78] => Array
(
[date] => 2016-09-19
[type] => lk
[count] => 31
)

[79] => Array
(
[date] => 2016-09-19
[type] => error
[count] => 280
)

[80] => Array
(
[date] => 2016-09-19
[type] => fbl
[count] => 457
)

[81] => Array
(
[date] => 2016-09-20
[type] => mail
[count] => 14
)

[82] => Array
(
[date] => 2016-09-20
[type] => lk
[count] => 3
)

[83] => Array
(
[date] => 2016-09-20
[type] => fbl
[count] => 20
)

)

из него нужно сделать что-то вроде
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
[0] =>array( array( 'date' => '2016-09-01',
                            'type' => 'mail',
                            'count' => 248),
                     array( 'date' => '2016-09-01',
                            'type' => 'lk',
                            'count' => 31),
                     array( 'date' => '2016-09-01',
                            'type' => 'operator',
                            'count' => 1),
                     array( 'date' => '2016-09-01',
                            'type' => 'error',
                           'count' => 296),
                     array( 'date' => '2016-09-01',
                           'type' => 'fbl',
                           'count' =>  496),

                   ),
 [1] =>array( array( 'date' => '2016-09-02',
                           'type' => 'mail',
                            'count' => 240),
                      array( 'date' => '2016-09-02',
                            'type' => 'lk',
                            'count' => 17),
                      array( 'date' => '2016-09-02',
                           'type' => 'operator',
                           'count' => 13),
                       array( 'date' => '2016-09-02',
                           'type' => 'error',
                            'count' => 416),
        ) . . .


Подскажите как так сделать
...
Рейтинг: 0 / 0
PHP разбить массив по дате
    #39312121
Sidmal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я бы обошел бы массив foreach-ем и создал бы новый массив, ключем которого является форматированное представление даты.
А затем если принципиально на выходе иметь не ассоциативный массив, а обычный, то получил бы просто значения, используя функцию array_values
...
Рейтинг: 0 / 0
PHP разбить массив по дате
    #39312167
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sidmal,

Не очень понял. Вот идёт ворыч
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/**
* $rowArray исходный массив
* $newArray //новый массив
*/
$newArray = array(); //новый массив

foreach($rowArray as $key=>$item){
         // как определять как набирать новый массив?
         // признак вложенных массивов это дата
}
...
Рейтинг: 0 / 0
PHP разбить массив по дате
    #39312186
Sidmal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick-nameПодскажите как так сделать


Ну если речь шла именно о подсказке, то я ее очень прозрачно дал выше)
Ну а если конкретно, то вот реализация того, что вам требуется. Хоть я и не являюсь сторонником, чтобы делать за кого-то, просто такое настроение.)
Одна просьба - разберитесь в функционирование ассоциативных массивов!

Код под спойлером:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
$a = [
                [
                    'date' => '2016-09-01',
                    'type' => 'mail',
                    'count' => 248
                ],
                [
                    'date' => '2016-09-01',
                    'type' => 'lk',
                    'count' => 31
                ],
                [
                    'date' => '2016-09-01',
                    'type' => 'operator',
                    'count' => 1
                ],
                [
                    'date' => '2016-09-01',
                    'type' => 'error',
                    'count' => 296
                ],
                [
                    'date' => '2016-09-01',
                    'type' => 'fbl',
                    'count' => 496
                ],
                [
                    'date' => '2016-09-02',
                    'type' => 'mail',
                    'count' => 240
                ],
                [
                    'date' => '2016-09-02',
                    'type' => 'lk',
                    'count' => 17
                ],
                [
                    'date' => '2016-09-02',
                    'type' => 'error',
                    'count' => 13
                ],
                [
                    'date' => '2016-09-02',
                    'type' => 'fbl',
                    'count' => 416
                ],
                [
                    'date' => '2016-09-03',
                    'type' => 'mail',
                    'count' => 168
                ]
        ];

        $newArray = [];

        foreach ($a as $item) {
            if (!isset($newArray[$item['date']])) {
                $newArray[$item['date']] = [];
            }

            $newArray[$item['date']][] = $item;
        }

        print_r($newArray); //выведет массив в котором ключами выступают даты, по которым происходила группировка
        print_r(array_values($newArray)); //выведет массив с числовыми ключами


...
Рейтинг: 0 / 0
PHP разбить массив по дате
    #39312205
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sidm
спасибо
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP разбить массив по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]