php - count() 在 while 循环后给我错误的输出

标签 php while-loop count

我正在从我的数据库中获取数据,count() 在 while 循环中获取数据后给我一个错误的输出。为什么?

输出是:

Line: 1 
Line: 2
Count after loop: 3

代码:

while($line[] = mysqli_fetch_array($result)){
    echo 'Line: '.count($line);
}
echo 'Count after loop: '.count($line);

最佳答案

这是因为在第 3 次迭代中 mysqli_fetch_array()将返回 NULL,因为没有剩余的行,您可以将其添加到数组中。

在计算结果为 FALSE 的 NULL 上,while 循环将停止,但它会被添加到数组中。所以你有 3 个元素,例如

Array ( 
    [0] => something
    [1] => something
    [2] => NULL
)

您可以在执行时看到:var_dump($line);。另外现在要解决这个问题,您可以简单地将代码放在 while 循环中以添加元素,例如

while($row = mysqli_fetch_array($result)){
    $line[] = $row;
    echo 'Line: '.count($line);
}
echo 'Count after loop: '.count($line);

因此,如果 $row 为 NULL,则不会将 $row 添加到 $line

关于php - count() 在 while 循环后给我错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258307/

相关文章:

php - MySQL,统计一个表中 "filled"字段的个数

sql - Oracle SQL 查询计数组按时间戳子字符串

c# - 如何使用 C# 计算 RichTextBox 中的字符数

php - 使用php将字符串转换为逗号分隔的数组

php - MySQL CMS连接问题

php - 用于在数据库中插入查询的简单 Jquery 函数

for-loop - 打破 tcl 中的父循环

java - 为什么我在用 Java 读取文本文件时会循环?

php - laravel-ide-helper 的问题

java - 尝试在 while 循环中获取 int 输入的总和