Имеется вывод массива объектов:
<?php $compare = 0; ?>
<?php foreach($arr as $key => $value): ?>
<?php if($compare != $value['id_storage']): ?>
<ul class="box box-main box-<?php echo ($value['id_storage']); ?>">
<div class="box-main-wrapper" style="display: flex; width: 100%;">
<li><?php echo ($value['id_storage']); ?></li>
<li><?php echo ($value['category_name']); ?></li>
<li><?php echo ($value['name_storage']); ?></li>
<li><?php echo ($value['mount']); ?></li>
<li><?php echo ($value['price']); ?></li>
<li><?php echo ($value['exp_date']); ?></li>
<li><input type="submit" class="btn btn-primary btn-details" value="Подробнее" style="align-self: center;"></li>
<?php $compare = $value['id_storage']; ?>
</div>
<div class="sub-box-wrapper"></div>
</ul>
<?php else: ?>
<ul class="hide box sub-box sub-box-<?php echo ($value['id_storage']); ?>">
<li><?php echo ($value['id_storage']); ?></li>
<li><?php echo ($value['category_name']); ?></li>
<li><?php echo ($value['name_storage']); ?></li>
<li><?php echo ($value['mount']); ?></li>
<li><?php echo ($value['price']); ?></li>
<li><?php echo ($value['exp_date']); ?></li>
<li></li>
</ul>
<?php endif ?>
При таком выводе в DOM-дереве ul с классом box-main создается первым, а ul с классом sub-box отдельно и ниже, чем ul с классом box-main. Как генерировать ul с классом sub-box внутри box-main, а точнее, внутри sub-box-wrapper ? Первый объект с 'id_storage' записывается в 'box-main', а остальные объекты с таким же 'id_storage' - в 'sub-box'.
Пример массива объектов $arr:
`Array
(
[0] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 2.22222e25
[mount] => 2
[exp_date] => 0000-00-00
)
[1] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 800
[mount] => 350
[exp_date] => 2017-09-04
)
[2] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 400
[mount] => 8
[exp_date] => 2017-09-01
)
[3] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 0
[mount] => 0
[exp_date] => 0000-00-00
)
[4] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 789
[mount] => 136
[exp_date] => 2018-09-10
)
[5] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 0
[mount] => 0
[exp_date] => 0000-00-00
)
[6] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 0
[mount] => 0
[exp_date] => 0000-00-00
)
[7] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 32313
[mount] => 1134
[exp_date] => 2018-09-10
)
[8] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 0
[mount] => 0
[exp_date] => 0000-00-00
)
[9] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 1578
[mount] => 16534
[exp_date] => 2018-09-10
)
[10] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 400
[mount] => 20
[exp_date] => 2017-09-02
)
[11] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 500
[mount] => 200
[exp_date] => 2017-09-03
)
[12] => Array
(
[id_storage] => 20
[category_name] => Motherboard
[name_storage] => MSI Z370 Gaming Plus (s1151, Intel Z370, PCI-Ex16)
[price] => 0
[mount] => 0
[exp_date] => 0000-00-00
)
[13] => Array
(
[id_storage] => 21
[category_name] => Motherboard
[name_storage] => Asus M5A78L-M LX3 (sAM3+, AMD 760G, PCI-Ex16)
[price] => 123
[mount] => 1
[exp_date] => 2018-03-03
)
[14] => Array
(
[id_storage] => 22
[category_name] => CPU
[name_storage] => Intel Core i7-8700K 3.7GHz/8GT/s/12MB
[price] => 777
[mount] => 459
[exp_date] => 2018-09-30
)
[15] => Array
(
[id_storage] => 22
[category_name] => CPU
[name_storage] => Intel Core i7-8700K 3.7GHz/8GT/s/12MB
[price] => 123123
[mount] => 11
[exp_date] => 2018-09-10
)
[16] => Array
(
[id_storage] => 22
[category_name] => CPU
[name_storage] => Intel Core i7-8700K 3.7GHz/8GT/s/12MB
[price] => 1121
[mount] => 22
[exp_date] => 2018-03-09
)
[17] => Array
(
[id_storage] => 23
[category_name] => CPU
[name_storage] => Intel Pentium G4500 3.5GHz/8GT/s/3MB
[price] => 999
[mount] => 111
[exp_date] => 2018-09-10
)
[18] => Array
(
[id_storage] => 24
[category_name] => Monitor
[name_storage] => Монитор 24" Samsung S24D300HS
[price] => 1214440
[mount] => 1232
[exp_date] => 2018-01-02
)
)
Изменяем структуру исходного массива, чтобы можно было его вывести в один проход:
<?php
$formated = [];
foreach ($arr as $item) {
if (!array_key_exists($item['id_storage'], $formated)) {
$formated[$item['id_storage']] = $item;
} else {
$formated[$item['id_storage']]['compare'][] = $item;
}
}
?>
А теперь выводим с учетом того, что товары для сравнения у нас помещены в подмассив compare
:
<?php foreach($formated as $value): ?>
<ul class="box box-main box-<?php echo ($value['id_storage']); ?>">
<div class="box-main-wrapper" style="display: flex; width: 100%;">
<li><?php echo ($value['id_storage']); ?></li>
<li><?php echo ($value['category_name']); ?></li>
<li><?php echo ($value['name_storage']); ?></li>
<li><?php echo ($value['mount']); ?></li>
<li><?php echo ($value['price']); ?></li>
<li><?php echo ($value['exp_date']); ?></li>
<li><input type="submit" class="btn btn-primary btn-details" value="Подробнее" style="align-self: center;"></li>
</div>
<div class="sub-box-wrapper">
<?php if (array_key_exists('compare', $value)): ?>
<?php foreach($value['compare'] as $subitem): ?>
<ul class="hide box sub-box sub-box-<?php echo $subitem['id_storage']; ?>">
<li><?php echo ($subitem['id_storage']); ?></li>
<li><?php echo ($subitem['category_name']); ?></li>
<li><?php echo ($subitem['name_storage']); ?></li>
<li><?php echo ($subitem['mount']); ?></li>
<li><?php echo ($subitem['price']); ?></li>
<li><?php echo ($subitem['exp_date']); ?></li>
<li></li>
</ul>
<?php endforeach; ?>
<?php endif; ?>
</div>
</ul>
<?php endforeach; ?>
Перейдем к сути вопроса мне необходимо использовать google api на своем веб сервере, для oauth 20 авторизации пользователя
Написал небольшой код, чтоб сообщения приходили на почту к заказчику, но по какой-то причине код не отрабатываетВсё внизу
Не могу придумать нормальный алгоритм для подсчета коров, программа при вводе двух одинаковых двузначных чисел("3 6 3 6"сравниваем с "3 6 7 5") считает...