@DeniSidorenko

Как улучшить цикл php?

Привет есть такой код

<?php $generalNumber = 1 ?>
		<?php $listNumber = 0 ?>
    <?php 
        while ( have_rows('comands') ) : the_row();
        $name = get_sub_field('comands_name');
        $photo = get_sub_field('comands_photo');
        $spec  = get_sub_field('comands_spec');
     ?>
     <?php if($listNumber % 4 == 0): ?>
		    <div class="comands-list">
	    <?php endif;     $listNumber++; ?>



      <!-- Comands Item -->
      <div class="comands-item">
        <div class="comands-item__photo">
          <img src="<?php echo $photo ?>">
        </div>
        <div class="comands-item__info">
          <div class="fitem">
            <div class="number"><?php echo $generalNumber; $generalNumber++ ?></div>
            <div class="ftext"><?php echo $name ?></div>
          </div>
          <div class="comands-text"><?php echo $spec ?></div>
        </div>
      </div>

      <!-- End Comands Item -->
		<?php if($listNumber % 4 == 0): ?>
		    </div>
    <?php endif; $listNumber == 0;?>

    <?php endwhile ?>


Сделал счетчик и проверку дабы каждые 4 item'a обворачивались в див с классом comands-list

Как сделать что бы данный цикл , обварачивал 2 и 3 item'а в обертку

пример

Сейчас так
<div class="comands-list">
	<div class="comands-item"></div>
	<div class="comands-item"></div>
	<div class="comands-item"></div>
	<div class="comands-item"></div>
</div>
<div class="comands-list">
	<div class="comands-item"></div>
	<div class="comands-item"></div>
	<div class="comands-item"></div>
	<div class="comands-item"></div>
</div>


А надо
<div class="comands-list">
	<div class="comands-item"></div>
	<div class="comands-center">
		<div class="comands-item"></div>
		<div class="comands-item"></div>
	</div>
	<div class="comands-item"></div>
</div>
<div class="comands-list">
	<div class="comands-item"></div>
	<div class="comands-center">
		<div class="comands-item"></div>
		<div class="comands-item"></div>
	</div>
	<div class="comands-item"></div>
</div>


Заранее спасибо
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
@Catrinblaidd
<?php $generalNumber = 1 ?>
    <?php $listNumber = 0 ?>
    <?php 
        while ( have_rows('comands') ) : the_row();
        $name = get_sub_field('comands_name');
        $photo = get_sub_field('comands_photo');
        $spec  = get_sub_field('comands_spec');
     ?>
    <?php if($listNumber % 4 == 0): ?>
      <?php $innerNumber = 1 ?>
      <div class="comands-list">
    <?php endif;     $listNumber++; ?>


    <?php if ($innerNumber == 2): ?>
      <div class="comands-center">
    <?php endif; ?>
    
      <!-- Comands Item -->
      <div class="comands-item">
        <div class="comands-item__photo">
          <img src="<?php echo $photo ?>">
        </div>
        <div class="comands-item__info">
          <div class="fitem">
            <div class="number"><?php echo $generalNumber; $generalNumber++ ?></div>
            <div class="ftext"><?php echo $name ?></div>
          </div>
          <div class="comands-text"><?php echo $spec ?></div>
        </div>
      </div>

      <!-- End Comands Item -->
      
    <?php if ($innerNumber == 3): ?>
      </div>
    <?php endif; ?>
      
    <?php if($listNumber % 4 == 0): ?>
        </div>
    <?php endif; $listNumber == 0; $innerNumber++; ?>

    <?php endwhile ?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Как сделать что бы данный цикл , обварачивал 2 и 3 item'а в обертку

if($listNumber === 3)
 .....
Ответ написан
Ваш ответ на вопрос

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

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