Задать вопрос
@anton99zel
29а класс средней школы №7

Как объединить элементы?

Имеется примерно такой код:
while($ob = $res->GetNextElement()){ 
$arFields = $ob->GetFields();  
$arProps = $ob->GetProperties();
$rest = CIBlockElement::GetByID($arProps[COLOR][VALUE]);
if ($ar_res = $rest->GetNext()) $imgmic = CFile::GetPath($ar_res[PREVIEW_PICTURE]);
$filed = CFile::ResizeImageGet($arFields[PREVIEW_PICTURE], array('width'=>322, 'height'=>120), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true, Array("name" => "sharpen", "precision" => 0), false, 95);
{?>
<div class="itemsnew-list-item-wrapper">
<div class="images_box">
<img class="itemsnew-list-item-image" src="<?=$filed[src]?>">
<?=$arFields[NAME]?>
</div>
</div>
<?};
}

Получаю html:
<div class="itemsnew-list-item-wrapper">
<div class="images_box">
<img class="itemsnew-list-item-image" src="/img1.jpg"> //картинки разные всегда
Москва // название
</div>
</div>

<div class="itemsnew-list-item-wrapper">
<div class="images_box">
<img class="itemsnew-list-item-image" src="/img2.jpg"> //картинки разные всегда
Москва // ДУБЛЬ название
</div>
</div>

<div class="itemsnew-list-item-wrapper">
<div class="images_box">
<img class="itemsnew-list-item-image" src="/img3.jpg"> //картинки разные всегда
Питер // название
</div>
</div>

Как сделать - если название повторяются, то html структура должна быть такой:
<div class="itemsnew-list-item-wrapper">
<div class="images_box">
<img class="itemsnew-list-item-image" src="/img1.jpg"> //картинки разные всегда
<img class="NOSHOW" src="/img2.jpg"> //картинки разные всегда + СТИЛЬ
Москва // название УНИКАЛЬНО
</div>
</div>

<div class="itemsnew-list-item-wrapper">
<div class="images_box">
<img class="itemsnew-list-item-image" src="/img3.jpg"> //картинки разные всегда
Питер // название УНИКАЛЬНО
</div>
</div>
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Простой Комментировать
Решение пользователя abyrvalg К ответам на вопрос (4)
abyrvalg
@abyrvalg
Разбейте на две части: группировка и вывод:

$cities = [];
while ($ob = $res->GetNextElement()) { 
    $cityName = ...;
    $image = ...;
    $cities[$city][] = $image;
}

foreach ($cities as $cityName => $images) {
    ...
    foreach ($images as $image) {
            ...
    }
    ...
}
Ответ написан