AntonEssential
@AntonEssential

Как ограничить кол-во свойств в цикле?

Господа, помогите пожалуйста с циклом, хочу организовать вывод 6-ти свойств, нагородил бороды какой-то, он работает но выводит все свойства которые есть.
Я бы хотел сделать что бы цикл вывел 6 свойств и после остановился, представление имею, как сделать не знаю.
<? if (is_array($arResult['DISPLAY_PROPERTIES']) && count($arResult['DISPLAY_PROPERTIES']) > 0): ?>
  <dl>
  	<h4><?=GetMessage('CATALOG_PROPERTIES')?></h4>
  	  <?
  	  	foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):
  	  	  if($pid=='CHAR')
  	  	  continue;
  	  	  if($pid=='COMPLECTION')
  	  	  continue;
  	  	  if($pid=='VIDEOREVIEW')
  	  	  continue;
  	  ?>
  	  <dt><?=$arProperty["NAME"]?></dt>
  	  <dd>
  	  	<?
  	  	  if(is_array($arProperty["DISPLAY_VALUE"])):
  	  	  	echo implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);
  	  	  elseif($pid=="MANUAL"):
  	  	?>
  	  	<?
  	  	  else:
  	  	  	echo $arProperty["DISPLAY_VALUE"];
  	  	  endif;
  	  	?>
  	  </dd>
  	<?endforeach;?>
  </dl>
<?endif;?>
  • Вопрос задан
  • 2348 просмотров
Решения вопроса 1
Dimitriys
@Dimitriys
если не разбираться с функциями, структурой кода и прочим, можно в лоб.
<? if (is_array($arResult['DISPLAY_PROPERTIES']) && count($arResult['DISPLAY_PROPERTIES']) > 0): ?>
  <dl>
  	<h4><?=GetMessage('CATALOG_PROPERTIES')?></h4>
  	  <?
$i = 0;//обнуляем переменную
  	  	foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):
  	  	  if($pid=='CHAR')
  	  	  continue;
  	  	  if($pid=='COMPLECTION')
  	  	  continue;
  	  	  if($pid=='VIDEOREVIEW')
  	  	  continue;
if ($i>=6){ //если прошло от 6ти шагов
    break; //обрываем foreach
    }
$i++; //иначе увеличиваем счетчик
  	  ?>
  	  <dt><?=$arProperty["NAME"]?></dt>
  	  <dd>
  	  	<?
  	  	  if(is_array($arProperty["DISPLAY_VALUE"])):
  	  	  	echo implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);
  	  	  elseif($pid=="MANUAL"):
  	  	?>
  	  	<?
  	  	  else:
  	  	  	echo $arProperty["DISPLAY_VALUE"];
  	  	  endif;
  	  	?>
  	  </dd>
  	<?endforeach;?>
  </dl>
<?endif;?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
LIMIT 6
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы