Работа с уникальными значениями массива

Undeadline

Новичок
Всем привет, в общем проблема такая:
Есть в интернет магазине корзина которая является многомерным массивом.

array:2 [▼
0 => array:6 [▼
"id" => 1
"name" => "Продукт 1"
"price" => 350
"weight" => 280.0
"category" => "block"
"counter" => 1
]
1 => array:6 [▼
"id" => 1
"name" => "Продукт 1"
"price" => 350
"weight" => 280.0
"category" => "block"
"counter" => 1
]
]

Как можно его перебрать чтобы, в нем остались только уникальные товары и в зависимости сколько было повторений этого товара, менять counter?
Помогите пожалуйста.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Такое лучше делать на уровне базы данных, сделать запрос с группировкой по id продукта.
 

Undeadline

Новичок
На уровне бд не получится т.к я с сессией работаю.
Собрал вот такую штуку, работает.
$result = [];
foreach ($carts_products as $value) {
$match = false;
for($i=0; $i<count($result); $i++) {
if ($value['id'] === $result[$i]['id']) {
$match = true;
$result[$i]['counter']++;
break;
}
}
if (!$match) $result[] = $value;
}
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Undeadline, перепиши тогда на foreach, зачем count() каждый раз в цикле дергать.
 

WMix

герр M:)ller
Партнер клуба
dump в тут клабе первый раз вижу :), срочно добавить парсер в ксенфоро c view как в оригиналах
 
Сверху