php arr[0] = 2008; foreach (arr as key =>
要完全了解清楚这个问题, 我想首先应该要大家了解PHP数组的内部实现结构………
PHP的数组
在PHP中, 数组是用一种...这个字段就是为了防治循环引用导致的无限循环而设立的....类似的, 当我们使用, each/next系列函数来遍历的时候, 也是通过移动数组的内部指针而实现了顺序遍历, 这里有一个问题, 比如:
arr = array(1,2,3,4,5); foreach...也就是说, 元素在线性遍历的时候是根据插入的先后顺序来遍历的, 这个特殊的设计使得在PHP中,当使用数字索引时, 元素的先后顺序是由添加的顺序决定的,而不是索引顺序...., 那么你就应该使用for, 而不是foreach
for(i=0,l=count(arr); i<l; i++) { //这个时候,不能认为是顺序遍历(线性遍历) }
本文由来源 21aspnet