Работа с большими массивами. Сортировка [закрыт]

132
04 апреля 2021, 19:50
Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.

Закрыт 1 год назад.

Улучшить вопрос

Всем привет, я новичок в PHP, поэтому не судите строго. Имею такой массив:

  0 => '2018-08-26 17:16:49',
  1 => 'Сет белый соус ',
  2 => 'Суши Гункан креветка спайси',
  3 => 'Контейнер ПРС-19',
  4 => 'Соус соевый 40 гр',
  5 => '2018-08-15 21:24:41',
  6 => 'Сет На двоих белый соус',
  7 => '2018-08-12 18:31:44',
  8 => 'Red hot 5  шт спайси соус',
  9 => 'Суши Гункан креветка спайси',
  10 => 'Соус соевый 40 гр',
  11 => 'Пакет',
  12 => 'Палочки бамбуковые',
  13 => 'Контейнер ПРС-19',
  14 => 'Ланч бокс LBS-1 (маленький)',
  15 => 'Калифорния люкс креветка',
  16 => '2018-07-17 17:31:56',
  17 => 'Суши Гункан креветка спайси',
  18 => 'Red hot 5  шт спайси соус',
  19 => 'Каприз креветка',
  20 => 'Вулкан креветка спайси соус 5шт',
  21 => 'Пакет',
  22 => 'Палочки бамбуковые',
  23 => 'Соус соевый 40 гр',
  24 => 'Контейнер ПРС-19',
  25 => 'Ланч бокс LBE-1  (большой)' .... итд

Как мне разделить этот массив по дате? Идет дата допустим, а потом заказы(до следующий даты). Ну я вот визуально показал. Все это мне нужно будет записать в в базу.

Вот код:

foreach($res['customersDeliveryHistory'] as $key=> $val)
{
    foreach($val['deliveryHistory'] as $key => $vals)
    {
        $items[] = $vals['date'];
        foreach($vals['items'] as $key => $eda)
        {
            $items[] = $eda['name'];
        }
    }
}

Мне нужно, чтобы массив стал таким:

  0 => 
  array (
    0 => '2018-08-26 17:16:49',
    1 => 'Сет белый соус',
    2 => 'Суши гункан'
  ),
  1 => (
  array(
    0 => '2018-08-15 21:56:12',
    .......
Answer 1
// Если $key нигде не используется - не пишите его, не захламляйте код
foreach($res['customersDeliveryHistory'] as $val)
{
    foreach($val['deliveryHistory'] as $vals)
    {
        $data = [
            $vals['date'],
        ];
        foreach($vals['items'] as $eda)
        {
            $data[] = $eda['name'];
        }
        $items[] = $data;
    }
}
print_r($items);

Или еще проще:

foreach($res['customersDeliveryHistory'] as $val)
{
    foreach($val['deliveryHistory'] as $vals)
    {
        $items[] = array_merge(
            [$vals['date']],
            array_column($vals['items'], 'name')
        );
    }
}
print_r($items);
READ ALSO
Как сделать церковный календарь?

Как сделать церковный календарь?

Поделитесь, пожалуйста, опытом как сделать церковный календарь? Чтобы на каждый день снизу высвечивалась строка с именами святыхСам календарь...

119
Как проверить реальность даты?

Как проверить реальность даты?

Генерирую пароль на сервере в зависимости от даты и id Юзеры повадились откатывать дату на предыдущую и пользовать не генеря новый пароль!...

196
Почему создается новый Handler?

Почему создается новый Handler?

Почему во втором классе мы создаем два Handler: mResponseHandler и mRequestHandler? Почему нужно создать mResponseHandler в onCreate и затем передать в конструктор mThumbnailDownloader?...

101
WebSocket реализация

WebSocket реализация

Сейчас я разрабатываю сервер который должен будет держать коннекты (предположим 1000) и каждые 15 секунд им всем отсылать сообщение с обновленными...

221