为啥 mysqli_fetch_array() 返回数组大小的两倍? [关闭]

Posted

技术标签:

【中文标题】为啥 mysqli_fetch_array() 返回数组大小的两倍? [关闭]【英文标题】:Why does mysqli_fetch_array() return array double the size? [closed]为什么 mysqli_fetch_array() 返回数组大小的两倍? [关闭] 【发布时间】:2013-04-06 06:50:23 【问题描述】:

我在做一个非常简单的php语句比如

print_r($my_rec);
$row = mysqli_fetch_array($my_rec);
echo "\nP_Id " . $row['P_Id'] . ' Length ' . sizeof($row) . "\n";
$row = mysqli_fetch_array($my_rec);
echo "\nP_Id " . $row['P_Id'] . ' Length ' . sizeof($row) . "\n";

现在当 print_r 打印到屏幕上时,它报告每个数组中只有 16 个字段/列。这是真实的。但是,当我获取一个数组时,它给了我双倍的字段。换句话说,数组在重复自己,这是没有意义的。示例...

我的数据库中有

 Col1  Col2
 "hi1" "bye1"

当我这样做时

 $row = mysqli_fetch_array($my_rec);
 foreach($row as $x)
       echo $x . "\n";
 

它会打印出来

 hi1
 hi1
 by2
 by2

为什么我会出现这种行为?

【问题讨论】:

RTLM: php.net/mysql_fetch_array,尤其是“返回值”部分。 @MarcB L 是什么意思 Linked,因为这里的某些人认为 F'ing 过于苛刻,无法使用。 同时查看php.net/mysql_fetch_assoc 以避免包含位置索引。 我不明白为什么我被否决了。我阅读了 php 手册,但不明白为什么我得到双数组。然后我去***问一个问题,我因为不理解手册而停了下来。你们这些人毁了***。这不是为知道自己在做什么的人制作的网站。否则为什么会有人在这里提问。我知道很多人会因为喜欢你而避开这类论坛。 【参考方案1】:

因为它还包含一个填充了列位置的数组(即:0、1、2、3 和 id、用户名、密码、电子邮件)。 id0 都持有相同的数据。

如果只想要字符串索引,可以使用mysqli_fetch_assoc(http://php.net/mysqli_fetch_assoc)

【讨论】:

以上是关于为啥 mysqli_fetch_array() 返回数组大小的两倍? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 isset($this->var) 在我的 Codeigniter 模型中总是返​​回 false?

MySQL:mysqli_fetch_array() [重复]

mysqli_fetch_array 未更新

如何修复 mysqli_fetch_array?我使用 php、mysqli 和 html

mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 [重复]

mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型。如何处理mysqli问题?