【问题标题】:Loop array items and limit the display循环数组项并限制显示
【发布时间】:2015-03-03 14:27:10
【问题描述】:

有一个名为$bannersarray,其中包含从我的数据库中提取的多个数据值。对于这个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 个,则屏幕上不会出现任何内容。

所以,无论代码有两个还是数千个项目。屏幕上应该只打印七个!有没有办法为它调整循环?

【问题讨论】:

  • 你为什么算$banners?这有什么原因吗?
  • foreach (array_slice($banners, 0, 7) as $banner) { ... }
  • $banners 是为了检查array 有多少值。如果超过 7,它应该打破 &lt;div&gt; 显示并且不会打印超过它。
  • 令人惊讶的是,人们为本质上微不足道的事情发布了多少过于复杂的答案

标签: php arrays loops for-loop foreach


【解决方案1】:

使用min 显示最多7 个元素,使用while 循环和pop 横幅显示:

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

【讨论】:

    【解决方案2】:
    $count = 0;
    $arraySize = count($banners);
    foreach ($banners as $banner) {
        if($count++ < $arraySize)
            echo "<div>Hey, this is a " . $banner "!</div>"
        else break;
    }
    

    【讨论】:

      【解决方案3】:

      如果你这样做,无论如何循环只会迭代7次:

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

      $x 是一个单独的变量,用于计算循环迭代次数,您可以使用它从数组中选择第 n 个元素。

      【讨论】:

      • 如果计数低于 7 => 错误
      • 确实,为了您在问题中提到的目的,您不需要 count($banners)。
      • @G33kGurl 你(和我)创建的循环,如果count($banners) 小于7,将给出undefined offset
      【解决方案4】:

      将数组的迭代限制为 7 次(或更少)并显示结果非常容易(参见其他答案)。然而,一个明显的问题是:

      您为什么不从数据库中选择最多 7 个项目?

      【讨论】:

        【解决方案5】:

        我认为 sizeof() 函数是您正在寻找的......

        if(sizeof($banners)

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

        }

        【讨论】:

          【解决方案6】:
          foreach ($banners as $key => $banner) 
          {
            if($key == 7) 
            {
              break; //Breaking code flow!
            }
            echo "<div>Hey, this is a " . $banner "!</div>"
          }
          

          【讨论】:

          • 请添加一个简单的英文解释这是如何解决问题的。
          猜你喜欢
          • 2013-12-26
          • 2017-05-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-24
          • 2016-02-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多