Подскажите возможно соединить массивы в один, у меня заказ записывает в одну таблицу order, а товар в order_product.
order
Array
(
[0] => Array(
[order_id] => 52
[firstname] => test
[lastname] => tst
[email] => Test
[telephone] => test
[payment_address_1] => Отделение №1: ул. Гагарина,22
[payment_method] => Новая почта
[date_added] => 2017-03-15 15:51:44
[date_modified] => 2017-03-15 15:51:44
)
)
order_product
Array
(
[0] => Array
(
[order_product_id] => 281
[id_order] => 52
[name] => Тапочки
[model] => Закрытые
[quantity] => 1
[total] => 25.00
[oll_total] => 25.00
)
[1] => Array
(
[order_product_id] => 280
[id_order] => 52
[name] => Носки
[model] => Закрытые
[quantity] => 1
[total] => 20.50
[oll_total] => 20.50
)
Возможно получить массив такова вида
Array
(
[0] => Array(
[order_id] => 52
[firstname] => test
[lastname] => tst
[email] => Test
[telephone] => test
[payment_address_1] => Отделение №1: ул. Гагарина,22
[payment_method] => Новая почта
[name] => Тапочки,Носки
[oll_total] => 25.00+20,05
[date_added] => 2017-03-15 15:51:44
[date_modified] => 2017-03-15 15:51:44
)
)
Просто сложите массивы:
$arr1 = array(
[
"order_id" => 52,
"firstname" => "test",
"lastname" => "tst",
"email" => "Test",
"telephone" => "test",
"payment_address_1" => "Отделение №1: ул. Гагарина,22",
"payment_method" => "Новая почта",
"date_added" => "2017-03-15 15:51:44",
"date_modified" => "2017-03-15 15:51:44 "
]
) ;
$arr2 = array(
[
"order_product_id" => 52,
"id_order" => 52,
"name" => "Носки",
"model" => "Закрытые",
"quantity" => 1,
"total" => 25.00,
"oll_total" => 25.00,
],
[
"order_product_id" => 280,
"id_order" => 52,
"name" => "Тапочки",
"model" => "Закрытые",
"quantity" => 1,
"total" => 25.00,
"oll_total" => 25.00,
],
) ;
$result = $arr1 + $arr2;
Результат:
http://prntscr.com/ekltaa
всё более чем очевидно
$order['products'] = $order_product
Для объединения массивов можно использовать merge()
Что-то типо такого:
var arr1=[1,2,3];<br>
var arr2=["a","b","c"];<br>
$.merge(arr1, arr2);
Вариант 1. Запрос в базу. Пример для MySQL:
SELECT o.*, GROUP_CONCAT(op.name SEPARATOR ', ') AS name, SUM(op.oll_total) AS oll_total
FROM order_table o
LEFT JOIN order_product_table op ON op.order_product_id = o.order_id
GROUP BY o.order_id
Вариант 2. Цикл в PHP, если у вас 2 массива
$result = [];
foreach ($orders as $key => $order)
{
$result[$key] = $order + ['name' => [], 'oll_total' => 0];
foreach ($order_products as $key2 => $product)
{
if ($product['order_product_id'] == $order['order_id'])
{
$result[$key]['name'][] = $product['name'];
$result[$key]['oll_total'] += $product['oll_total'];
}
}
$result[$key]['name'] = implode(', ', $result[$key]['name']);
}
Готовой функции нет. В вашем конкретном случае я бы выбрала вариант 1.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Рационально ли делать все переходы по страницам сайта на php + ajax для фоновой игры плеера (как в вк)?
Подскажите, как сделать на wordpress многоуровневое меню? Допустим есть такой массив объектов:
Я использую PDOПолученный результат я вывожу через foreach