Есть две разные cookie:
Cart содержит ID товара и количество этого товара в заказе. Пример:
{"227":2,"235":1,"242":1,"243":3}
cart_info содержит ID товара и размеры этого товара в заказе. В вышеуказанном примере:
{"227":["XL","4XL"],"235":["3XL"],"242":["L"],"243":["M","L","XL"]}
Функция обработки cart:
$items = (array)json_decode(stripslashes(@$_COOKIE['cart']), true);
$products = $this->model->product->getByIds(array_keys($items));
$orders2 = array();
foreach ($products as $product) {
$count = array_key_exists($product->id, $items) ? $items[$product->id] : 1;
$count = preg_match('@^[0-9]+$@i', $count) ? $count : 1;
$orders2[] = $product->name . ' (' . $count . ' шт);';
}
Результат: Товар227 (2 шт); Товар235 (1 шт); Товар242 (1 шт); Товар243 (3 шт);
Функция обработки cart_info:
$items_info = (array)json_decode(stripslashes(@$_COOKIE['cart_info']), true);
$message_info = "";
foreach ($items_info as $key => $val) {
$message_info .= $this->model->product->getById($key)->name . ": " . implode(',', array_unique($val)) . " // ";
}
Результат:Товар227: XL,4XL // Товар235: 3XL // Товар242: L // Товар243: M,L,XL //
Помогите написать третью функцию, которая объединит данные и даст результат вида:
Товар227 (2 шт): XL,4XL // Товар235 (1 шт): 3XL // Товар242 (1 шт): L // Товар243 (3 шт): M,L,XL //
Как вариант, вы можете в функции обработки cart_info собирать информацию в массив, а вывод делать через implode(string, delimiter), где в качестве индекса массива писать $this->model->product->getById($key)->id, то есть будет:
$cartInfo[$this->model->product->getById($key)->id] = $this->model->product->getById($key)->name . ": " . implode(',', array_unique($val));
В функции 1 сделать аналогично - индекс массива = ид товара.
$orders2[$product->id] = $product->name . ' (' . $count . ' шт);';
И в конце что-то типо:
foreach($orders2 as $productId => $order){
echo $order.':'.$cartInfo[$productId];
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости