【发布时间】:2026-02-09 06:50:02
【问题描述】:
是否可以重新启动 while 循环?我目前在 foreach 循环中存在一个 while 循环,我需要 while 语句每次都从头开始。
$sql = mysqli_query($link, "SELECT * FROM products");
$products = array('Milk', 'Cheese', 'Eggs');
$i = 0;
$total = count($products); //This is in case I change the product list.
if($sql)
{
foreach($products as $v)
{
while($r = mysqli_fetch_assoc($sql))
{
if($r['Name'] == $v)
{
echo $r['Name'] . " - £" . $r['Price'];
break;
}
}
}
}
当代码运行并生成Milk 和Eggs 但在数据库中Cheese 出现在Eggs 之前,我的问题出现了,因此它似乎永远不会被找到。如何重新启动 while 循环以强制代码从 sql 查询开始检查每个值?
已解决:使用散列来查询而不是循环 sql。
【问题讨论】:
-
为什么要重新启动while循环,首先将所有数据提取到一个数组中并像正常的内部循环一样进行
-
@MansoorkhanCherupuzha 我从未将数据提取到数组中?我假设运行一个 while 循环,然后在里面运行一个 foreach($row) 这就是你的意思?
标签: php mysql foreach while-loop