书中代码如下
php code高某,a公司,北京市,14=>(010)98765432,gao@php.com); $num=0; foreach($contact as $value) { echo在数组\$contact中第.$num.个元素是:$value
; $num++; }?>
输出结果如下:
在数组$contact中第0个元素是:1
在数组$contact中第1个元素是:(010)98765432
在数组$contact中第2个元素是:a公司
在数组$contact中第3个元素是:北京市
在数组$contact中第4个元素是:gao@php.com
小弟对于数组array存在困惑 其键与值的问题
第0个元素是1 这个我明白 那么第1个元素为什么会跳到电话号码呢?
14=>高某怎么算。。 然后是公司 北京市 邮箱 为什么会跳跃 不懂 求指点
ps : 此书输出语句居然是【在数组\$contact中第$num个元素是:$value
】 你没的 连接符都没有。
------解决方案--------------------
数组运行机制.
从左到右 按 键值生成 内容.无键值情况 则 按 数字顺序生成 键值。
以上
左到右的情况中 键值 为 14 的有2个
数组现排序 按插入情况排列
[0] = 1 (1)
[14] = 高某 (2) [15] = a公司 (3)
------解决方案--------------------
晕,你重复定义了
array(
14=>高某,
14=>(010)98765432
);
自然就被(010)98765432,覆盖了
但是按照数组的排列14=>高某,原来排在第二个,
所以14=>(010)98765432排在第二个
------解决方案--------------------
php code$contact = array( 1, 14 => 高某, a公司, 北京市, 14 => (010)98765432, gao@php.com);// 格式化打印出来,如下:echo '';print_r($contact);/*array( [0] => 1 [14] => (010)98765432 [15] => a公司 [16] => 北京市 [17] => gao@php.com)*/// 由此可以看出后面的“(010)98765432”将前面的“高某”覆盖了,这是为什么呢?因为php中同维度数组中不允许存在相同的键,你可以将键看成人的身份证号码,值看成是人的名字,名字有相同而身份证号不会有相同。之后数组变成如下:$contact=array(1,14=>(010)98765432,a公司,北京市,gao@php.com);//这个时候因为a公司,北京市,gao@php.com这三个在键14的后面,那么它们的键不会再从1开始了,而是接着14开始,也就是15//咱们再看个例子(将a公司移动到1的后面):$contact=array(1,a公司,14=>(010)98765432,北京市,gao@php.com);echo '';print_r($contact);//结果输出如下:/*array( [0] => 1 [1] => a公司 [14] => (010)98765432 [15] => 北京市 [16] => gao@php.com)*/