Php 如何使用herdoc循环两个引导列

Php 如何使用herdoc循环两个引导列,php,twitter-bootstrap,Php,Twitter Bootstrap,我试图循环浏览产品,并在两个引导列中显示它们。很明显,我现在使用的方法不起作用,因为输出是: Apple Apple Banana Banana Grapes Grapes Strawberry Strawberry 然而,它应该看起来像: Apple Banana Grapes Strawberry function bootloop($link) {

我试图循环浏览产品,并在两个引导列中显示它们。很明显,我现在使用的方法不起作用,因为输出是:

    Apple           Apple
    Banana          Banana
    Grapes          Grapes
    Strawberry      Strawberry
然而,它应该看起来像:

Apple           Banana
Grapes          Strawberry


function bootloop($link) {

    $stmt = $link->prepare("SELECT `prod_name` FROM `products`");
    $stmt->execute();
    $result = $stmt->get_result();
    if($result) {
        while($row = $result->fetch_assoc()) {
            $prod_name = sanitize($row['prod_name']);

            $bootloop = <<<LOOPCOLUMNS

            <div class="col-md-6 text-center">{$prod_name}</div>
            <div class="col-md-6 text-center">{$prod_name}</div>

LOOPCOLUMNS;
            echo $bootloop;
        }
    }

    $stmt->close();
}



<div class="container">
    <div class="row">
        <?php bootloop($link); ?>
    </div>
</div>
苹果香蕉 葡萄草莓 函数bootloop($link){ $stmt=$link->prepare(“从“产品”中选择“产品名称”); $stmt->execute(); $result=$stmt->get_result(); 如果($结果){ 而($row=$result->fetch_assoc()){ $prod_name=sanitize($row['prod_name']);
$bootloop=如果要对行的数组值进行分组,可以使用
array\u chunk()

另外,由于您不需要为以后存储
html
,而且行非常小,因此我只使用
echo
,而不是
herdoc
,因为我发现它更可读。显然,如果您不想这样做,您不必这样做

然后,您将得到如下结果:

function bootloop($link)
{

    $stmt = $link->prepare("SELECT `prod_name` FROM `products`");
    $stmt->execute();
    $result = $stmt->get_result();
    if ($result) {
        $prod_names = [];

        while ($row = $result->fetch_assoc()) {
            $prod_names[] = sanitize($row['prod_name']);
        }

        foreach (array_chunk($prod_names, 2) as $chunks) : ?>
            <div class="row">
                <?php foreach ($chunks as $prod_name) : ?>
                    <div class="col-md-6 text-center">
                        <?php echo $prod_name ?>
                    </div>
                <?php endforeach ?>
            </div>
        <?php endforeach;
    }

    $stmt->close();
}
函数引导循环($link)
{
$stmt=$link->prepare(“从“产品”中选择“产品名称”);
$stmt->execute();
$result=$stmt->get_result();
如果($结果){
$prod_名称=[];
而($row=$result->fetch_assoc()){
$prod_name[]=消毒($row['prod_name']);
}
foreach(数组块($prod\u名称,2)作为$chunks):?>

最简单的方法是只使用一个
{$prod\u name}
在循环中:)哦,对了。也许我今天在阳光下呆得太久了。PI似乎无法选择你的评论作为答案。也许重新发布代码减去col-md-6行。是的,可以。也就是说,引导列应该被包装成行,以便它们的样式正确。你想让我告诉你一种方法吗?是的,请e!那太好了。这看起来很棒了,谢谢!如果你不介意再帮我一点忙的话,我怎么能给它添加另一个变量呢?就像我还想要$prod_id以及现有的$prod_名称一样。@Jonathan Just
id
或者你以后会给它添加更多吗?@Jonathan好的,
sanitize()是什么
do?sanitize只是我的htmlentities的助手函数
function sanitize($dirty){return htmlentities($dirty,entu QUOTES,“UTF-8”)}
@Jonathan另外,看看其中的一些,你几乎可以肯定地跳过前几节课,但在后面的一些课中,你可能会发现一些有趣的概念。
foreach (array_chunk($prod_names, 2) as $chunks) {
    echo '<div class="row">';
    foreach ($chunks as $prod_name) {
        echo "<div class='col-md-6 text-center'>$prod_name</div>";
    }
    echo '</div>';
}
$stmt = $link->prepare("SELECT `id`, `prod_name` FROM `products`");

$products = [];

while ($row = $result->fetch_assoc()) {
    $products[] = [
        'id'   => $row['id'],
        'name' => sanitize($row['prod_name']),
    ];
}

foreach (array_chunk($products, 2) as $chunks) {
    echo '<div class="row">';
    foreach ($chunks as $product) {
        echo "<div class='col-md-6 text-center'>{$product['id']} {$product['name']}</div>";
    }
    echo '</div>';
}