1

我使用类似于此代码的内容:

<?php foreach ($items as $item): ?>
    <div><?php echo $item['Item']['content']; ?></div>
<?php endforeach; ?>

而且我想知道每个项目是哪个元素,因为我想为每行的第四个项目添加类“last-in-row”。如何制作这样的代码?

<?php for ($i=1; $i <= $items.count; $i++) {
    echo "<div ";
    if ($i % 4 == 0) {
        echo " class=\"last-in-row\""; }
    echo ">$items[$i]</div>";
}; ?>
4

3 回答 3

2

我尚未对其进行测试,但以下应该可以工作。

<?php 
$i = 1;
foreach ($items as $item) {
  $class = ($i % 4 == 0) ? '' : 'class="last-in-row"';
  echo "<div $class>{$item['Item']['content']}</div>";
  $i++;
} 
?>

ps 我希望你正在清理$item['Item']['content']。

于 2013-02-13T13:57:30.020 回答
2

你想要做的事情可以用 css3 来完成。这意味着您不需要添加更好的类,因为稍后您可能需要连续 3 或 5 个。

div:nth-child(4n+4) {
    ....
    clear: both;
    ....
}

没有 css3 的 CakePHP 选项

foreach ($items as $i => $item) {
    echo $this->Html->tag('div', $item['Item']['content'], array(
        'class' => ($i + 1) % 4 === 0 ? 'last' : null
    ));
}
于 2013-02-13T14:56:03.137 回答
0

您在第二个示例中几乎拥有它,只需更改$items.countcount($items)

$itemsCount = count($items);
for ($i=1; $i <= $itemsCount ; $i++) {
    echo "<div ";
    if ($i % 4 == 0) {
        echo " class=\"last-in-row\""; }
    echo ">{$items[$i]}</div>";
}
于 2013-02-13T14:01:33.467 回答