@Heckfy325
Начинающий программист. Простите за глупые вопросы

Как записать данные в массив?

Мне нужно вывести один заказ, в одном заказе может быть любое количество товаров. У меня же выводится один заказ - один товар, т.е в одном заказе один товар. И этот заказ дублируется в таком количестве сколько и товаров в этом заказе.
foreach ($order as $item){
                        $arr = array(
                                ' Новый заказ❗' => '',
                                ' Товары: ' => $item['name'],
                                ' Дата: ' => date('d.m.Y в H:i'),
                                ' Управление заказами' => '<a href="https://stroymaz-beta.uz/admin/orders/new">Перейти</a>',
                            );

                      debug($arr);
}

Соответственно получается результат:
Array
(
    [ Новый заказ❗] => 
    [ Товары: ] => Товар
    [ Дата: ] => 17.04.2020 в 12:09
    [ Управление заказами] => Перейти
)
Array
(
    [ Новый заказ❗] => 
    [ Товары: ] => Товар2
    [ Дата: ] => 17.04.2020 в 12:09
    [ Управление заказами] => Перейти
)
Array
(
    [ Новый заказ❗] => 
    [ Товары: ] => Товар3
    [ Дата: ] => 17.04.2020 в 12:09
    [ Управление заказами] => Перейти
)


Мне нужно чтобы результат был таким:
Array
(
    [ Новый заказ❗] => 
    [ Товары: ] => Array
        (
            [0] => Товар
            [1] => Товар2
            [2] => Товар3
        )

    [ Дата: ] => 17.04.2020 в 12:15
    [ Управление заказами] => Перейти
)
  • Вопрос задан
  • 426 просмотров
Решения вопроса 1
Abr_ya
@Abr_ya
Если правильно понял вопрос, то в общем виде делал бы так:
1) в foreach оставить только формирование массива товаров,
2) после цикла создать нужный массив, в товары подставив полученный на первом шаге (если я правильно понял и всё, кроме товара, в item-ах повторяется).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
Убираете foreach, в "товары" вместо

$item['name']

кладёте

array_column($order, 'name')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы