Элементы массива циклов и ограничение отображения

0

Существует array именем $banners с несколькими значениями данных, вытащенными из моей базы данных. Для этого array я хотел бы отображать только семь из этих значений. Так что я:

$count = count($banners);
for($count; ; $count++) {
  if($count > 7) {
    break;
  }
  foreach ($banners as $banner) {
    echo "<div>Hey, this is a " . $banner "!</div>"
  }
}

Код будет отображаться только в том случае, если array содержит меньше или равен 7 элементам. В противном случае, если array имеет более 7, на экране ничего не появится.

Таким образом, независимо от того, имеет ли код два или тысячи элементов. На экране должно быть напечатано только семь! Есть ли способ настроить петлю?

  • 0
    Почему вы считаете $banners ? Есть причина для этого?
  • 0
    foreach (array_slice($banners, 0, 7) as $banner) { ... }
Показать ещё 2 комментария
Теги:
arrays
for-loop
loops
foreach

6 ответов

1

использовать min для отображения макс 7 элемента, использовать while цикл и pop баннера на дисплей:

$count = min(7, count($banners)); 
while ($count--) { 
    $banner = array_pop($banners); 
    echo "<div>Hey, this is a " . $banner ."!</div>"; 
} 
0

Я думаю, функция sizeof() - это то, что вы ищете.

if (sizeof ($ banners) <= 7) {

 foreach ($banners as $banner)
 {
    echo "<div>Hey, this is a " . $banner "!</div>"
 }

}

0

Если вы сделаете это так, цикл будет повторяться только 7 раз независимо от того, что:

$count = count($banners);
for($x = 0; $x < 7; $x++) {
    echo "<div>Hey, this is a " . $banner[$x] . "!</div>"
  }
}

$ X - отдельная переменная для подсчета итераций цикла, и вы можете использовать ее для выбора n-го элемента из вашего массива.

  • 0
    если количество меньше 7 => ошибка
  • 0
    Правда, для вашей цели, которую вы упомянули в вопросе, вам не нужно считать ($ баннеров).
Показать ещё 2 комментария
0
foreach ($banners as $key => $banner) 
{
  if($key == 7) 
  {
    break; //Breaking code flow!
  }
  echo "<div>Hey, this is a " . $banner "!</div>"
}
  • 1
    Пожалуйста, добавьте простое объяснение того, как это решает проблему.
0
$count = 0;
$arraySize = count($banners);
foreach ($banners as $banner) {
    if($count++ < $arraySize)
        echo "<div>Hey, this is a " . $banner "!</div>"
    else break;
}
0

Его довольно легко ограничить 7 (или меньше) итераций на массиве и отобразить результаты (см. Другие ответы). Однако вопиющий вопрос:

Почему вы не выбираете лимит из 7 элементов из своей базы данных?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню