本人初学PHP,刚学到数组这块。
我定义一个数组
$wage=array(
"ABC"=>"abc",
"DEF"=>"def");
echo $wage["ABC"]得到abc,而echo $wage[0]却得不到任何值,不知道是怎么一回事,恳请各位大牛解释一下。
我定义一个数组
$wage=array(
"ABC"=>"abc",
"DEF"=>"def");
echo $wage["ABC"]得到abc,而echo $wage[0]却得不到任何值,不知道是怎么一回事,恳请各位大牛解释一下。
"abc",
"DEF"=>"def");试一下这个
"ABC"=>"abc",
"DEF"=>"def");这样定义的话 $wage[0]能取到值才是怪事情呢$wage=array('abc');或者$wage=array(0=>'abc');才能取到
或者说php数组本身就是一个映射关系(key => value) 如果没有key 那么默认0,1,2...
这样可以回答你的问题了
'cdf');由于没有为指定的数据定义键值(即key),则系统默认为它们分配键值,从0开始类推 ;
但是如果你自定义了键值:'ABC'=>''abc;则该数据的key为ABC,系统不在为它指定而外的key;
如果你需要使用数字键值也可以将它们序列化 ,使用Array_key();函数:$kye = array_key($array);然后你就可以使用$key[0];访问了,但这好像没什么必要…
"ABC"=>"abc",
"DEF"=>"def");你这样定义的里面有两个键值对:ABC=>abc,DEF=>def。明显没有以0为键的值,当然打不出,不然你可以试试,$wage[0]='new';print_R($wage);看看里面的结构你就明白了
你已经定义了2个元素abc和def,而且这两个元素你也都定义了下标ABC和DEF,这个数组里只有2个元素$wage[ABC]=abc和$wage[DEF]=def,$wage[0]没有这个下标的元素。
$wage=array(
"ABC"=>"abc",
"DEF"=>"def");
就是一个关联数组.这时"ABC"是"abc"的索引,所以必须用 echo $wage["ABC"]得到abc;
如果将数组该一下,变成一个普通数组
$wage=array("abc","def");
用echo $wage[0]就可得到abc.
正解,我记得each(),有4个键,0 1 key value
对于数组呢,要用print_r才行的,print与print_r的区别就是不能输出复杂的数据,像数组那样。