Как сделать группу (если конкретное поле одного текста) в цикле?

Я попытался сделать данные в цикле, и если extend_tag поля имеют одинаковую текстовую группу в одном контейнере.
Я знаю только жесткий код, как показано ниже, база данных цикла на сколько известно extend_tag группа, но на самом деле extend_tag числа неизвестны могут быть tag_ и любая цифра, любая идея, как ее решить?

данные

[tag] => Array (
[0] => Array (
[id] => 1
[extend_tag] => tag_0
)
[1] => Array (
[id] => 2
[extend_tag] => tag_11
)
[2] => Array (
[id] => 3
[extend_tag] => tag_4
)
)<ul class="container">
<?php foreach($rows['tag'] as $eachRowsTag) { ?>
<?php if ($eachRowsTag['extend_tag'] == 'tag_0') { ?>
<li>><?php echo $eachRowsTag['id']; ?></li>
<?php } ?>
<?php } ?>
</ul>

<ul class="container">
<?php foreach($rows['tag'] as $eachRowsTag) { ?>
<?php if ($eachRowsTag['extend_tag'] == 'tag_1') { ?>
<li>><?php echo $eachRowsTag['id']; ?></li>
<?php } ?>
<?php } ?>
</ul>

...

2

Решение

Почему бы сначала не сгруппировать их, а затем выполнить итерацию по полученному массиву. Что-то вроде следующего.

foreach ($tags as $tag) {
$grouped[$tag['extend_tag']][] = $tag;
}
// Now $grouped is something along the lines of:
// [
//   'tag_0' => [
//     [ 'id' => 1, 'extend_tag' => 'tag_0'],
//     ..
//   ],
//   ..
// ]

foreach($grouped as $extend_tag => $tags) {
echo "All tags in $extended_tag.";
foreach($tags as $tag) {
echo $tag['id'];
}
}

// For something like:
// All tags in tag_0.
// 1
// 4
// All tags in tag_1.
// ..
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector