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

Как не выводить пустые значения в массиве (битрикс)?

Код в битриксе
<?$arSelect = Array("ID","PROPERTY_TIME");$arFilter = Array("IBLOCK_ID"=>34);$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>550), $arSelect);while($ob = $res->GetNextElement()){  $arFields = $ob->GetFields(); 

echo ($arFields[PROPERTY_TIME_VALUE]).", "; 
}?>

Выводит: 1, 1, 6, 7, 7, 7, 7, 8676, , , , , , , , , , , , , , , 5, , 111, 111
Как убрать пустые значения?
  • Вопрос задан
  • 3693 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Нужно проверить на пустоту значение в $arFields['PROPERTY_TIME_VALUE']. Если пусто, то continue.

Более удачный вариант - добавить проверку на непустое значение в $arFilter. Как вариант '!TIME' => false
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
echo (!empty($arFields[PROPERTY_TIME_VALUE]))?$arFields[PROPERTY_TIME_VALUE].", ":"";
Ответ написан
Комментировать
@Nikolays93
Web-разработчик
Для начала: писать все в одну строку, не самый хороший манер.
2: PROPERTY_TIME_VALUE желательно обернуть в кавычки "PROPERTY_TIME_VALUE", конечно если это не константа
3: Добавьте проверку на значение
$arSelect = Array("ID","PROPERTY_TIME");
$arFilter = Array("IBLOCK_ID"=>34);
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>550), $arSelect);

while($ob = $res->GetNextElement()){
    $arFields = $ob->GetFields();

    if( !empty($arFields["PROPERTY_TIME_VALUE"]) )
        echo ($arFields["PROPERTY_TIME_VALUE"]).", ";

    // или:
    // if( empty($arFields["PROPERTY_TIME_VALUE"]) ) continue;
    // echo ($arFields["PROPERTY_TIME_VALUE"]).", ";
}
Ответ написан
Ваш ответ на вопрос

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

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