理解数组表示法(特别是mysql_fetch_array和print_r)

时间:2011-07-22 00:29:56

标签: php mysql arrays

打印数组的函数是否都使用相同的表示法?一种符号胜过另一种符号的原因是什么?我注意到当使用PHP print_r显示使用mysql_fetch_array编译的数组时,数组的符号如下:

Array ([column] => value [index] = value)

例如,如果这是表格:

id fname lname
1 John Smith

然后mysql_fetch_array的print_r输出将是:

Array ([id] => 1 [0] => 1 [fname] => John [1] => John [lname] => Smith [2] => Smith)

这种符号的原因是什么?具体来说,为什么价值会重复?这不是多余的吗?

此外,是否有人可以推荐一个良好的资源来更好地概念化理解数组?谢谢!

3 个答案:

答案 0 :(得分:4)

关联数组使用字符串作为索引,数字数组使用数字。

mysql_fetch_array()创建一个包含数字键的关联数组,以便两者都可用于访问数组。

mysql_fetch_assoc()创建一个只包含字符串索引的数组。

mysql_fetch_row()创建一个完全数字的数组,并且执行这些函数的速度最快。

答案 1 :(得分:3)

print_r& var_dump仅供开发人员调试。它的语法不是一成不变的,不应该依赖它。唯一重要的是它对开发人员来说是可读的。特别是查看html文档的 source ,您会看到更加结构化的格式。

至于你的第二个问题:好像你做了mysql_fetch_array()而不是mysql_fetch_rowmysq_fetch_assoc,请参阅这些功能的手册页。

至于了解数组的来源:你试过manual吗?

答案 2 :(得分:2)

mysql_fetch_assoc();会给你你想要的东西

mysql_fetch_array允许你使用

$array['id']

但是

$array[0];

mysql_fetch_row();仅为您提供这些数值和

mysql_fetch_assoc();仅为您提供这些字符串值