打印数组的函数是否都使用相同的表示法?一种符号胜过另一种符号的原因是什么?我注意到当使用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)
这种符号的原因是什么?具体来说,为什么价值会重复?这不是多余的吗?
此外,是否有人可以推荐一个良好的资源来更好地概念化理解数组?谢谢!
答案 0 :(得分:4)
关联数组使用字符串作为索引,数字数组使用数字。
mysql_fetch_array()
创建一个包含数字键的关联数组,以便两者都可用于访问数组。
mysql_fetch_assoc()
创建一个只包含字符串索引的数组。
mysql_fetch_row()
创建一个完全数字的数组,并且执行这些函数的速度最快。
答案 1 :(得分:3)
print_r
& var_dump
仅供开发人员调试。它的语法不是一成不变的,不应该依赖它。唯一重要的是它对开发人员来说是可读的。特别是查看html文档的 source ,您会看到更加结构化的格式。
至于你的第二个问题:好像你做了mysql_fetch_array()
而不是mysql_fetch_row
或mysq_fetch_assoc
,请参阅这些功能的手册页。
至于了解数组的来源:你试过manual吗?
答案 2 :(得分:2)
mysql_fetch_assoc();
会给你你想要的东西
mysql_fetch_array允许你使用
$array['id']
但是
$array[0];
mysql_fetch_row();
仅为您提供这些数值和
mysql_fetch_assoc();
仅为您提供这些字符串值