限制页面上显示的类别数

时间:2018-07-18 05:57:26

标签: php

我有这部分代码,是从txt文件加载类别的。

<?php                       
  foreach ($categories as $cat) {               
    if ($cat['word'] == false)                          
      continue;                                                             
?>
  <li>
     <a href="cats/"><?php echo $cat['name']?></a>
  </li>
<?php } ?>

问题在于它们很多,因为它们是从外部拉出并动态填充到文件中的。因此,我想将其限制为15个,但我无法做到。

我尝试使用forwhile,例如:

<?php                       
  foreach ($categories as $cat) {             
    if ($cat['word'] == false)                         
      continue;               
      for($cat['word'] = 0; $cat['word'] <=15; $cat['word']++){                                  
?>
  <li>
     <a href="cats/"><?php echo $cat['name']?></a>
  </li>
<?php } 
   }?>

<?php                       
  foreach ($categories as $cat) {             
    if ($cat['word'] == false)                         
      continue;               
      while($cat['word'] = 15;){                                  
?>
  <li>
     <a href="cats/"><?php echo $cat['name']?></a>
  </li>
<?php } 
   }?>

两个变体都导致空名称。

3 个答案:

答案 0 :(得分:2)

以下将为您工作吗?

<?php $count = 0; ?>
<?php foreach ($categories as $cat) :?>
  <?php if ($cat['word'] == false) continue; ?>
  <li>
      <a href="cats/"><?php echo $cat['name']?></a>
  </li>
  <?php if ($count >= 15) break; ?>
  <?php $count++; ?>
<?php endforeach; ?>

答案 1 :(得分:1)

假设您要之前过滤掉$cat['word'] == false个条目,将结果限制为前15个(即,最多显示15个条目),请尝试类似的方法。 ..

$filtered = array_filter($categories, function($cat) {
    return $cat['word']; // only include truthy "word" entries
});
foreach (array_slice($filtered, 0, 15) as $cat) : ?>
<li>
 <a href="cats/"><?= $cat['name'] ?></a>
</li>
<?php endforeach ?>

答案 2 :(得分:0)

<?php  

$counter = 0;

  foreach ($categories as $cat) {               
    if ($cat['word'] == false){                          
      continue;                
     } 

if($counter < 15) { 

echo '<li>
     <a href="cats/"><?php echo $cat['name']?></a>
  </li>'

$counter++;
 }} ?>

可以重构。