php - 如何使用 PHP Foreach 每次回显两个项目?

标签 php foreach

我正在使用 PHP 从数据库中回显我的产品。如果我们只使用 foreach,我们将在每个循环中得到一个结果,但实际上我希望它在下面的函数中每次回显两个项目。

这是我的 PHP 函数,使用 foreach 从数据库中获取数据。

我使用row item 选择器来包装product 选择器,所以我想回显一个 block product 两次,然后它应该回应 row item

示例:行项目 = 1 然后产品 = 2

public function last_upated_products() {

    $data = $this->newest_products_from_db('products');
    $out = '';
    if ($data) {
        foreach ($data as $k => $row) {

            $out .= '<div class="row item">';

            $out .= '<div class="product">';
            $out .= '<div class="image">';
            $out .= '<a href=""><img src="' . base_url('asset/img/main/9.jpg') . '" alt="img" class="img-responsive"></a>';
            $out .= '<div class="promotion"><span class="discount">' . $row['prod_id'] . '% OFF</span> </div>';
            $out .= '</div>';
            $out .= '<div class="description"><div class="price"><span>$' . $row['prod_price'] . '</span></div><h4><a href="#">' . $row['prod_name'] . '</a></h4>';
            $out .= '<p>' . $row['prod_descrip'] . '</p>';
            $out .= '</div>';
            $out .= '</div>';

            $out .= '</div>';
        }
    }
    return $out;
}

这个函数将回显一个循环的项目。

最佳答案

您不能在一个循环的一次迭代中打印两次。您可以使用条件 HTML 输出来完成这项工作。

考虑一下:

function last_upated_products() {

    $data = $this->newest_products_from_db('products');
    $out = '';
    $counter = 1;
    $length = count($data);
    if ($data) {
        foreach ($data as $k => $row) {

            if ($counter % 2 != 0) {
                $out .= '<div class="row item">';
            }

            $out .= '<div class="product">';
            $out .= '<div class="image">';
            $out .= '<a href=""><img src="' . base_url('asset/img/main/9.jpg') . '" alt="img" class="img-responsive"></a>';
            $out .= '<div class="promotion"><span class="discount">' . $row['prod_id'] . '% OFF</span> </div>';
            $out .= '</div>';
            $out .= '<div class="description"><div class="price"><span>$' . $row['prod_price'] . '</span></div><h4><a href="#">' . $row['prod_name'] . '</a></h4>';
            $out .= '<p>' . $row['prod_descrip'] . '</p>';
            $out .= '</div>';
            $out .= '</div>';


            if ($counter % 2 == 0 || $length == $counter) {
                $out .= '</div>';
            }

            $counter++;
        }
    }
    return $out;
}

关于php - 如何使用 PHP Foreach 每次回显两个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34772318/

相关文章:

javascript - 在另一个选择字段更改后重新填充的动态选择字段 - Laravel 5.2 和 JS

PHP 5.5.16 isset 或 empty 中的非法偏移类型

java - 跳过 for 循环中的元素并重新分配它

java - 如何对每一行字符串应用 foreach 循环

java - For-each并分配给二维数组Java

javascript - Node.js - Handlebars 引用变量

php - 谷歌地图覆盖

php - 删除默认 Cake 应用程序中的默认界面 CakePHP 链接?

c# - foreach 在匿名类型上

php - 添加 SQL 计数值