首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是什么导致了foreach循环中的额外raw?

是什么导致了foreach循环中的额外raw?
EN

Stack Overflow用户
提问于 2015-03-19 09:24:06
回答 3查看 54关注 0票数 0

我有一个for每个循环,用于打印订单中给定销售项目的序列号,这是基于this question完成的。

代码语言:javascript
运行
复制
    if (($c["current_state"] == '16') || ($c["current_state"] == '4')) {
        $snlst = $mysqli->query("SELECT sn FROM ps_serials WHERE id_product={$aritmlst["product_id"]} AND id_order=$oid ORDER BY sn ASC");

        while ($id = mysqli_fetch_array($snlst)) {
            $ids[] = $id;
            foreach ($ids as $key => $id) {
                echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($key +1)."</td><td>".$id['sn']."</td></tr>";
            }
        }
    } 

但问题是,我为我的列表获得了额外的表。为什么会这样呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-19 15:03:28

我不认为需要两个循环。这应该是足够的代码:

代码语言:javascript
运行
复制
if (($c["current_state"] == '16') || ($c["current_state"] == '4')) {
    $snlst = $mysqli->query("SELECT sn FROM ps_serials WHERE id_product={$aritmlst["product_id"]} AND id_order=$oid ORDER BY sn ASC");
    $i = 0;
    while ($row = mysqli_fetch_array($snlst)) {
        $i++;
        echo '<tr><td class="label" style="padding-left:15px">Serial Number ' . $i . '</td><td>' . $row['sn'] . '</td></tr>' . PHP_EOL;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-03-19 09:38:00

重写这一行:

代码语言:javascript
运行
复制
while ($id = mysqli_fetch_array($snlst)) {
            $ids[] = $id;
            foreach ($ids as $key => $id) {
                echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($key +1)."</td><td>".$id['sn']."</td></tr>";
            }
        }

对此:

代码语言:javascript
运行
复制
while ($id = mysqli_fetch_array($snlst)) {
    $ids[] = $id;       
}
foreach ($ids as $key => $id) {
 echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($key +1)."</td><td>".$id['sn']."</td></tr>";
            }
票数 0
EN

Stack Overflow用户

发布于 2015-03-19 10:12:02

然后尝试一个简单的for循环,而不是foreach循环:

代码语言:javascript
运行
复制
for($i= 0; $i < count($ids); $i++)
{
  echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($i+1)."</td><td>".$ids[$i]['sn']."</td></tr>";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29140855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档