mysqli_fetch_array如何工作?

时间:2017-03-13 12:52:12

标签: php

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++;
}

我得到一个无限循环。我错过了什么?

2 个答案:

答案 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++;       
    }