while循环通常具有试图避免无限循环的代码。我不明白这是如何运作的while($row = mysqli_fetch_array($result_set)
?
从php手册中,它说mysqli_fetch_array为每个结果行返回一个数组。所以我们在这里为变量$ row分配一个数组。好吧,我试图复制这个:
$result_set = $database->query($sql);
while($row = mysqli_fetch_array($result_set)){
some code
}
用这个:
$a = ["a","b","c"];
$num = 1;
while($row = $a){
echo $num;
$num++;
}
我得到一个无限循环。我错过了什么?
答案 0 :(得分:2)
为了使用您创建的数组复制mysqli_fetch_array()
的行为,请考虑以下事项:首先创建一个数组数组:
$a = ["a"=>array(1,2,3),"b"=>array(4,5,6),"c"=>array(7,8,9)];
$num = 1;
一种方法(这种谚语猫的皮肤不止一种方法)是使用foreach()
循环来获取和操纵(回显)每一行:
foreach($a AS $row){
echo $num ."\n";
$num++;
echo $row[0] . " " . $row[1] . " " .$row[2] . "\n";
}
这会返回您期望的内容,您的数字后跟$a
example每行中的数据:
1
1 2 3
2
4 5 6
3
7 8 9
一旦循环到达数组的末尾,它将退出,与mysqli_fetch_array()
基本上相同,“foreach result_set as row”。
答案 1 :(得分:0)
您可以使用类似while
while($row = mysqli_fetch_array($result_set))
循环尝试此操作
$a = ["a","b","c"];
$num = 0;
while($num < count($a)){
echo $a[$num]."\n";
$num++;
}