Каким образом получить новый массив из текущего?
Через переменную получаю такой массив вывода продукта
array(4) {
[0]=>
array(3) {
["name"]=>
string(58) "Адаптер прямоугольного сечения"
["price"]=>
string(8) "300 руб."
["catID"]=>
string(1) "7"
["catName"]=>
string(60) "Воздуховоды квадратного сечения"
}
[1]=>
array(3) {
["name"]=>
string(43) "Воздуховод прямошовный"
["price"]=>
string(8) "500 руб."
["catID"]=>
string(1) "8"
["catName"]=>
string(54) "Воздуховоды круглого сечения"
}
[2]=>
array(3) {
["name"]=>
string(51) "Врезка круглая в воздуховод"
["price"]=>
string(8) "60 руб."
["catID"]=>
string(1) "8"
["catName"]=>
string(54) "Воздуховоды круглого сечения"
}
[3]=>
array(14) {
["name"]=>
string(56) "Заглушка воздуховода торцевая"
["price"]=>
string(8) "900 руб."
["catID"]=>
string(1) "7"
["catName"]=>
string(60) "Воздуховоды квадратного сечения"
}
}
В данном примере 3 продукта относиться к категории №7 ( catID) а один к №8 Задача, вывести по категориям, что бы на странице формировалась такая структура
<div class="category-wrap">
<div class="category-name"><span>Названия категории №1</span></div>
<div class="category-products">
<div class="category-product">
<div class="category-product__name">Имя продукта</div>
<div class="category-product-price">Цена продукта</div>
</div>
<div class="category-product">
<div class="category-product__name">Имя продукта</div>
<div class="category-product-price">Цена продукта</div>
</div>
</div>
</div>
<div class="category-wrap">
<div class="category-name"><span>Названия категории №2</span></div>
<div class="category-products">
<div class="category-product">
<div class="category-product__name">Имя продукта</div>
<div class="category-product-price">Цена продукта</div>
</div>
</div>
</div>
Я подумал сделать следующим образом. Пройтись по массиву, и сравнивать ID категории, создавая новые массивы , где каждый массив будет иметь названия категории, ид, и внутри массив с продукции которые относяться к данной категории. По логике понимаю как сделать но возникли трудности с реализации. Буду очень признателен за помощь.
Ответы (1 шт):
Автор решения: Pavel
→ Ссылка
$items =[
['name'=>'Адаптер прямоугольного сечения1','price'=>12,'catID'=>'7','catName'=>'Воздуховоды квадратного сечения'],
['name'=>'Адаптер прямоугольного сечения2','price'=>13,'catID'=>'7','catName'=>'Воздуховоды квадратного сечения'],
['name'=>'Адаптер прямоугольного сечения3','price'=>14,'catID'=>'7','catName'=>'Воздуховоды квадратного сечения'],
['name'=>'Врезка круглая в воздуховод1','price'=>15,'catID'=>'8','catName'=>'Воздуховоды круглого сечения'],
['name'=>'Врезка круглая в воздуховод2','price'=>16,'catID'=>'8','catName'=>'Воздуховоды круглого сечения'],
['name'=>'Врезка круглая в воздуховод3','price'=>17,'catID'=>'8','catName'=>'Воздуховоды круглого сечения'],
];
$result = [];
foreach($items as $item){
$catId = $item['catID'];
$result[$catId]['catID'] = $item['catID'];
$result[$catId]['catName'] = $item['catName'];
unset($item['catID'],$item['catName']);
$result[$catId]['items'][] = $item ;
}
var_dump($result);