Задать вопрос
@yuri_ero

Как в Битрикс с помощью PHP скрывать одну или несколько характеристик если они пустые?

<?php

$prop = CIBlockElement::GetByID($arResult['ID'])->GetNextElement()->GetProperties();

$paramsArray = [
    $prop['fasad']['NAME'] => $prop['fasad']['VALUE'],
    $prop['karkas']['NAME'] => $prop['karkas']['VALUE'],
    $prop['ruchki']['NAME'] => $prop['ruchki']['VALUE'],
    $prop['mehanism']['NAME'] => $prop['mehanism']['VALUE'],
];

foreach ($paramsArray as $key => $value): ?>
    <div class="row paramsTab">
        <div class="parameter">
            <?=$key;?>
        </div>
	<div class="paramValue">
	    <?=strlen($value) ? $value : '-';?>
        </div>
    </div>
<?php endforeach; ?>

Сейчас код выглядит так, характеристик там гораздо больше, но я их сократил, т.к. сути это не меняет и для некоторых товаров, т.к. они разные по сути много неподходящих характеристик с прочерками, как правильно скрывать эти характеристики?
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
Скорее всего, более полный код можно еще скомкать, сразу отсеяв ненужное.
С этим конкретным можно обойтись, например, так (дальнейшая проверка уже не потребуется):
$paramsArray = [];
foreach(['fasad', 'karkas', 'ruchki', 'mehanism'] as $key) {
    $val = $prop[$key]['VALUE'];
    if($val !== '') {
        $paramsArray[$prop[$key]['NAME']] = $val;
    }
}
Ответ написан
Комментировать
Fragster
@Fragster
помогло? отметь решением!
https://www.php.net/manual/en/control-structures.c...
отдельно не совсем понятна необходимость $paramsArray, если только из-за списка опций или его порядка, то можно использовать массив ключей, если опции нужны все - то почему сразу не пройтись по $prop?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы