Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Остановить цыкл foreach и продолжить дальше

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Exponat
Отправлено: 18 Июня, 2015 - 17:21:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте.
Не могу разобратся с циклом foreach.

Как в цыкле сделать такой вывод:
CODE (html):
скопировать код в буфер обмена
  1. <div class="tab">
  2. <div class="photo">1</div>
  3. <div class="photo">2</div>
  4. <div class="photo">3</div>
  5. <div class="photo">4</div>
  6. <div class="photo">5</div>
  7. <div class="photo">6</div>
  8. </div>
  9. <div class="tab">
  10. <div class="photo">7</div>
  11. <div class="photo">8</div>
  12. <div class="photo">9</div>
  13. <div class="photo">10</div>
  14. <div class="photo">11</div>
  15. <div class="photo">12</div>
  16. </div>
  17. <div class="tab">
  18. <div class="photo">13</div>
  19. <div class="photo">14</div>
  20. <div class="photo">15</div>
  21. <div class="photo">16</div>
  22. <div class="photo">17</div>
  23. <div class="photo">18</div>
  24. </div>


Пока просто до 6 елементов так идет:
PHP:
скопировать код в буфер обмена
  1.  
  2. $count = 0; $max_loop = 6;
  3. echo '<div class="tab">';
  4. foreach ($result["rows"] as $row)
  5. {
  6.         echo '<div class="photo">';
  7.          $row["type"])
  8.         echo '</div>';
  9.         if ($count == $max_loop) break;
  10.         $count ++;
  11. }
  12. echo '</div>';
  13.  


И если мы даже не знаем сколько будет элементов в массиве нужно чтоб по 6 разбивало. Как такое смастерить?
 
 Top
Tyoma5891
Отправлено: 18 Июня, 2015 - 17:43:12
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




как то так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. foreach ($result["rows"] as $key=>$row)
  4. {
  5.        if ($key % 6==0 ){
  6.         echo '<div class="tab">';
  7.         echo '</div>';}
  8.  echo '<div class="photo">'.$key.'';
  9.         echo '</div>';      
  10. }
  11.  

(Отредактировано автором: 18 Июня, 2015 - 17:43:49)

 
 Top
Ch_chov
Отправлено: 18 Июня, 2015 - 18:02:30
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Tyoma5891 пишет:
        echo '<div class="tab">';
        echo '</div>';}

А зачем сразу тег закрывать?
(Добавление)
Так будет работать даже если количество результатов не делится ровно на шесть.
PHP:
скопировать код в буфер обмена
  1. foreach (array_chunk($result['rows'], 6) as $tab) {
  2.    echo '<div class="tab">';
  3.    foreach ($tab as $row) {
  4.      echo '<div class="photo">', $row, '</div>';
  5.    }
  6.    echo '</div>';  
  7. }
 
 Top
Exponat
Отправлено: 18 Июня, 2015 - 21:35:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Спасибо ребят.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB