1

我有一个循环,它一次显示最多 12 个项目的网格中的项目(3 跨 4 行向下)。网格中可以有任意数量的项目(1 到 12),但在我只有 1 或 2 个项目的情况下,我需要在 HTML 中附加一个类。例如:

当我有 3、6、9、12 项时 - 不需要 当我有 4、7、10 项(剩余 1 个)时 - 第 4、7 和 10 项需要申请课程 当我有 5、8、11 项时(剩余 2 个) ) - 项目 4,5, 7,8, 10,11 需要一个班级申请

我怎样才能在 PHP 中做到这一点。对于每个项目,我都可以使用以下内容:

  • 页面上的产品总数
  • 当前项目

道歉 - 编辑器乱码的伪代码:

$howmanyleft = totalproducts - currentproduct
if ($howmanyleft <= 2) {
    if ($currentproduct % 3 == 0) {
        //addclass
    }
}

然后在我的 CSS

article.product-single  {
    width: 33.3333%;
    border-bottom: 1px solid rgb(195,195,195);
    border-right: 1px solid rgb(195,195,195);
}
article.product-single:nth-child(3n) {
    border-right: none;
}

article.lastrow, article.product-single:last-child {
    border-bottom:none;
}

对不起,我搞错了。这不是我需要的。我很抱歉。我只需要用一个类标记的任何剩余项目,而不是每一行。

如果有 4 个项目,则标记项目 4 如果有 5 个项目,则标记项目 4 和 5 如果有 10 个项目,则标记项目 10 如果有 11 个项目,则标记项目 10 和 11

4

2 回答 2

2

如果我正确理解了您的问题,您将需要如下代码:

// check how many items will remain in the final row (if the row is not filled with 3 items)
$remainder = $total_items % 3;
for ($i = 0; $i < $total_items; $i++) { 
    if($remainder > 0 && $i >= $total_items - $remainder) {
        // executed for items in the last row, if the number of items in that row is less than 3 (not a complete row)
    } else {
        // executed for items that are in 3 column rows only
    }
}

这是一个完整的例子,说明这样的事情是如何工作的。使用以下代码创建一个新的 php 文件并查看输出。

// add some random data to an array
$data = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven');
$total_items = count($data);

// check how many items will remain in the final row (if the row is not filled with 3 items)
$remainder = $total_items % 3;

// loop through all the items
for ($current_item = 0; $current_item < $total_items; $current_item++) { 
// check to see if the item is one of the items that are in the row that doesn't have 3 items
    if($remainder > 0 && $current_item >= $total_items - $remainder) {
        echo $data[$current_item] . " - item in last row, when row is not complete<br />";
    // code for regular items - the ones that are in the 
    } else {
        echo $data[$current_item] . " - item in filled row<br />";
    }
}
于 2012-09-03T12:49:03.500 回答
0

它只是 number_of_products 模 number_of_columns

4 % 3 == 1
5 % 3 == 2
6 % 3 == 0
于 2012-09-03T12:39:15.870 回答