我有这部分代码,是从txt文件加载类别的。
<?php
foreach ($categories as $cat) {
if ($cat['word'] == false)
continue;
?>
<li>
<a href="cats/"><?php echo $cat['name']?></a>
</li>
<?php } ?>
问题在于它们很多,因为它们是从外部拉出并动态填充到文件中的。因此,我想将其限制为15个,但我无法做到。
我尝试使用for
和while
,例如:
<?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 }
}?>
两个变体都导致空名称。
答案 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++;
}} ?>
可以重构。