1 数组的键值插入顺序
<?php
$a = array();
$a[2] = 2;
$a[1] = 1;
$a[0] = 0;
var_dump($a);
foreach ($a as $k=>$v) {
echo 'key:'.$k.' value:'.$v;
}
// 输出
array(3) {
[2]=>
int(2)
[1]=>
int(1)
[0]=>
int(0)
}
key:2 value:2key:1 value:1key:0 value:0
可以看到,这里的顺序并没有按照下标从0到2的顺序,而是按照实际的插入顺序。这是因为array的底层是用HashTable来存储,元素形成一个链,通过头尾指针连接,所以插入时,会从头到尾依次插入。这样在遍历时,就按实际插入的顺序来返回了。