current($arr);//"当前"的意思,该函数是取出数组内部指针指向的单元的值
echo key($arr);//"键",该函数是 取出数组内部指针指向的单元的 "键"
next($arr);// "下一个", 把数组内部的指针往尾部移动一个单元
prev($arr);//指针往头部移动一下
reset($arr);//不管数组的指针跑哪儿了,用reset,可以重置,使数组的指针归0,指向开头处
end($arr);//该函数把指针指向数组的最后一个单元
foreach应该把指针移到尾部去了, 第2个foreach,会不会受第1个foreach的影响,
答:foreach在运行前,会自动reset数组,因此不会受上一次的影响.
问:foreach循环后,会不会帮我们把数组reset指针初始化?
答;不会
each的作用是把指针指向的当前单元的信息组成一个数组 数组有4个单元,具体如下:
array(
1=>'单元值',
'value'=>'单元值',
0=>'单元的键',
'key'=>'单元的键'
)
each不仅把当前指针指向的单元的信息组合成一个数组返回
并且同时把指针往尾部移动一次
$arr = array('春','夏','秋','冬');
list($spring,$summer,$fall,$winter) = $arr;
echo $spring,$summer,$fall,$winter,'<br />';
list($a,$b,$c) = array(2=>'赵',3=>'钱',1=>'孙');
var_dump($a);
echo $b,$c,'<br />';
list是如何工作的?
因为list能够给多个变量赋值,即把数组的多个单元分别赋给多个值. 那么,自然要注意一个最重要的地方 即-----把数组的哪个单元 对应 赋给哪个变量???
具体对应如下: 在list中,按","隔开的顺序,从左到右,分别对应右侧数组(设为$arr) $arr[0],$arr[1],$arr[2],.... $arr[N]
如果需要对应右侧的$arr[x] 不存在怎么办? 答:依然是先对应,不存在,当成NULL来处理.
1: 对于数字的索引值,不必加单双引号
因为加了单双引号,比如"1",则需要把"1"转成整型1,来寻找该单元.影响了效率.
2: 字符串型的下标,要不要加单双引号?
没有加单双引号,理解成常量,并且按常量值来取值. 如果没有该常量,再次把name当成字符串的下标来处理.
不加单双引号,流程上,先理解成常量,如无,再当成字符串,效率必然低.
3:加单引还是加双引?
在字符串学习的时候,单引号的解析速度远比双引号快.因此,优先加 单引号.
总结:
数字类型的索引,不必加引号
字符串类型索引必加,而且优先加单引号
浙公网安备 33010602011771号