Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проверка свойст на наличие значений

00 голосов
1
Выводим в таблице список свойст по каждому из элементов:

Код
<?foreach($arResult["ITEMS"] as $arElement):?>

<table> 
  <?foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> 
    <tr> 
      <td>
         <?=$arProperty["NAME"]?> 
      </td> 
      <td> 
        <?if(is_array($arProperty["DISPLAY_VALUE"])):?> 
             <?=implode("/", $arProperty["DISPLAY_VALUE"]);?> 
        <?else:?> 
             <?=$arProperty["DISPLAY_VALUE"];?> 
        <?endif?> 
      </td> 
    </tr> 
  <?endforeach;?> 
</table> 

<?endforeach;?>


Подскажите, как можно отфильтровать свойства у которых отсутствуют значения.
спросил 15 Янв, 14 от DElf (100 баллов)

1 Ответ

00 голосов
Код
 
        <?if(is_array($arProperty["DISPLAY_VALUE"])):?>
             <?=implode("/", $arProperty["DISPLAY_VALUE"]);?>
        <?else:?>
             <?=$arProperty["DISPLAY_VALUE"];?>
        <?endif?> 


у вас проверка не корректная, если $arProperty["DISPLAY_VALUE"] не массив, то выводите просто значение (в том числе и пустое). Cделайте обертку, чтобы пустые не выводились:

Код
<?foreach($arResult["ITEMS"] as $arElement):?>

<table>
  <?foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
    <?if($arProperty["DISPLAY_VALUE"]):?>
    <tr>
      <td>
         <?=$arProperty["NAME"]?>
      </td>
      <td>
        <?if(is_array($arProperty["DISPLAY_VALUE"])):?>
             <?=implode("/", $arProperty["DISPLAY_VALUE"]);?>
        <?else:?>
             <?=$arProperty["DISPLAY_VALUE"];?>
        <?endif?>
      </td>
    </tr>
    <?endif?>
  <?endforeach;?>
</table>

<?endforeach;?>
ответил 02 Май, 14 от Poleolog (1,240 баллов)

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

0 голосов
3 ответов
спросил 09 Март, 14 от Grimmi (2,560 баллов)
0 голосов
5 ответов
спросил 10 Дек, 13 от Traxexx (900 баллов)
0 голосов
2 ответов
0 голосов
0 ответов
спросил 20 Янв, 17 от root (25,590 баллов)
+1 голос
1 ответ
спросил 24 Дек, 14 от аноним