我面临一个问题。我foreach
在 PHP 中构建了一个循环:
<?php $show = false; ?>
<?php foreach ($this->items as $item) : ?>
但我想回应前 20 项并继续以下 16 项。
我已经设法在 20 件物品后休息一下,但我没有得到以下 16 件物品(从 nr 21 开始)。
这是我到目前为止所拥有的:
<?php $show = false; ?>
<?php $i = $item->id = 1; ?>
<?php foreach ($this->items as $item) : ?>
<?php if(++$i > 20) break; ?>
如果我设置$i
它'21'
仍然会回显第 1 项,依此类推。
解决方案##感谢@dhavald
<?php $show = false; ?>
<?php foreach (array_slice ($this->items, 0, 20) as $item) : ?>
通过array_slice
在 foreach 中放置一个,您可以控制要显示的项目。所以在下一个 div 我想显示项目 21 到 36,我唯一需要改变的是 0 和 20 到 , 20, 36
为了澄清我在寻找什么,我有三个 div,我想在其中回显一些项目。如果用户折叠第一个 div,则会出现前 20 个项目,如果用户单击 div2,则会出现接下来的 16 个项目。
如何更正此代码以实现这一目标?
正如我忘记提到的,你带来的解决方案帮助我真正理解了这个过程,但是当我使用 Joomla 3.1 的组件生成器时,有一行代码使得调用第一个 20 和第二个 16 变得有点复杂项目。
在foreach循环之后直接有这行代码
if($item->state == 1 || ($item->state == 0 && JFactory::getUser()>authorise('core.edit.own',' com_ncitycatemus.vraagantwoordtoevoegen.'.$item->id))):
$show = true;
我如何管理它而不是使用循环?还是您建议另一种方式?
提前致谢!真的帮助我理解了循环!