Подскажите пожалуйста. Ломаю голову уже не первый день.
Есть массив (Родитель-Категория-Подкатегория)
Array
(
[0] => Array
(
[id] => 1
[name] => Родитель 1
[layer] => 1
[parent_id] => 0
[link] =>
)
[1] => Array
(
[id] => 10
[name] => Категория 1
[layer] => 2
[parent_id] => 1
[link] => урл_категории
)
[2] => Array
(
[id] => 178
[name] => Подкатегория 1
[layer] => 3
[parent_id] => 10
[link] => урл_подкатегории
)
[3] => Array
(
[id] => 56
[name] => Подкатегория 2
[layer] => 3
[parent_id] => 10
[link] => урл_подкатегории
)
[4] => Array
(
[id] => 57
[name] => Подкатегория 3
[layer] => 3
[parent_id] => 10
[link] => урл_подкатегории
)
[5] => Array
(
[id] => 192
[name] => Категория 2
[layer] => 2
[parent_id] => 1
[link] => урл_категории
)
[6] => Array
(
[id] => 194
[name] => Подкатегория 3
[layer] => 3
[parent_id] => 192
[link] => урл_подкатегории
)
[21] => Array
(
[id] => 2
[name] => Родитель 2
[layer] => 1
[parent_id] => 0
[link] =>
)
[22] => Array
(
[id] => 13
[name] => Категория 1
[layer] => 2
[parent_id] => 2
[link] => урл_категории
)
[23] => Array
(
[id] => 67
[name] => Подкатегория 1
[layer] => 3
[parent_id] => 13
[link] => урл_подкатегории
)
[24] => Array
(
[id] => 185
[name] => Подкатегория 2
[layer] => 3
[parent_id] => 13
[link] => урл_подкатегории
)
)
Я пытаюсь вывести в аккордеоне бутстрапа всю эту систему.
Вот код вывода (В этом коде еще присутствует уровень с товаром). Там просто шаблонный 1 товар для теста.
<div class="row">
<div class="col-12">
<div class="accordion" id="accordionExample">
<?php
$i = 1;
foreach($left_menu as $menu_item) {
if($menu_item['layer']==3) { ?>
<div class="card-body p-0 pt-1">
<h3 class="mb-0 text-center alert-primary" style="color:white"><?=$menu_item['name']?></h3>
<div class="table-responsive">
<table class="table table-sm mb-0">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Наименование</th>
<th scope="col">Описание</th>
<th scope="col">Цена завода (опт)</th>
<th scope="col">Цена базовая</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="badge badge-danger my-2">Хит продаж</div></td>
<td><a href="#">Товар 1</a></td>
<td class="w-75">Описание</td>
<td>8 190 <i class="fas fa-ruble-sign"></i></td>
<td>9 635 <i class="fas fa-ruble-sign"></i></td>
<td class="table-action"><a href="#"><i class="align-middle" data-feather="shopping-cart" style="color:red"></i></a></td>
</tr>
</tbody>
</table>
</div>
</div>
<?php
}
if($menu_item['layer']==2) {
if($l2_id>0) { //закрываем 2-й уровень ?>
</div>
<?php
}
$l2_id = $menu_item['id'];
?>
<div class="card-header alert-primary" id="headingOne">
<h5 class="card-title my-2">
<a href="#" data-toggle="collapse" data-target="#collapse-<?=$i?>" aria-expanded="true" aria-controls="collapseOne" style="color:white"><?=$menu_item['name']?></a>
</h5>
</div>
<div id="collapse-<?=$i?>" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
<?php
}
?>
<?php
if($menu_item['layer']==1) {
if($l2_id>0) { //закрываем 2-й уровень ?>
<?php
}
if($l1_id>0) { //закрываем 1-й уровень ?>
<?php
}
$l1_id = $menu_item['id'];
$l2_id=-1;
?>
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0"><?=$menu_item['name']?></h5>
</div>
<?php
}
$i++;
}
?>
</div>
</div>
</div>
Проблема в том, что я не могу верно закрыть нужные теги. Не понимаю.
Рабочий HTML шаблон имеет такой код
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Родитель</h5>
</div>
<div class="card-header alert-primary" id="headingOne">
<h5 class="card-title my-2">
<a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" style="color:white">Категория 1</a>
</h5>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body p-0 pt-1">
<h3 class="mb-0 text-center alert-primary" style="color:white">Подкатегория 1</h3>
<div class="table-responsive">
<table class="table table-sm mb-0">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Наименование</th>
<th scope="col">Описание</th>
<th scope="col">Цена завода (опт)</th>
<th scope="col">Цена базовая</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="badge badge-danger my-2">Хит продаж</div></td>
<td><a href="#">Товар 1</a></td>
<td class="w-75">Описание</td>
<td>8 190 <i class="fas fa-ruble-sign"></i></td>
<td>9 635 <i class="fas fa-ruble-sign"></i></td>
<td class="table-action"><a href="#"><i class="align-middle" data-feather="shopping-cart" style="color:red"></i></a></td>
</tr>
</tbody>
</table>
</div>
<div class="card-body p-0 pt-1">
<h3 class="mb-0 text-center alert-primary" style="color:white">Подкатегория 2</h3>
<div class="table-responsive">
<table class="table table-sm mb-0">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Наименование</th>
<th scope="col">Описание</th>
<th scope="col">Цена завода (опт)</th>
<th scope="col">Цена базовая</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="badge badge-danger my-2">Хит продаж</div></td>
<td><a href="#">Товар 2</a></td>
<td class="w-75">Описание</td>
<td>8 190 <i class="fas fa-ruble-sign"></i></td>
<td>9 635 <i class="fas fa-ruble-sign"></i></td>
<td class="table-action"><a href="#"><i class="align-middle" data-feather="shopping-cart" style="color:red"></i></a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
Я пробую поставить закрывающий
</div>
сюда (т.к по мои представлениям он должен закрыть тег
<card>
, но он закрывает
<div>
который основной аккордеон)
if($l1_id>0) { //закрываем 1-й уровень ?>
</div>
<?php
}