经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢?
比如:
<?...详解”)
结合上面的HashTable结构, 我们来说明下HashTable的总结构图:
HashTable结构示意图
HashTable的pListhHead指向线性列表形式下的第一个元素, 上图中是元素...类似的, 当我们使用, each/next系列函数来遍历的时候, 也是通过移动数组的内部指针而实现了顺序遍历, 这里有一个问题, 比如:
arr = array(1,2,3,4,5); foreach...也就是说, PHP中遍历数组的顺序, 是和元素的添加先后相关的, 那么, 现在我们就很清楚的知道, 文章开头的问题的输出是:
huixinchen
2007
2008
所以, 如果你想在数字索引的数组中按照索引大小遍历..., 那么你就应该使用for, 而不是foreach
for(i=0,l=count(arr); i<l; i++) { //这个时候,不能认为是顺序遍历(线性遍历) }
本文由来源 21aspnet