$arr[2] = 2;
$arr[3] = 3;
$arr[0] = 0;
$arr[1] = 1;
print_r($arr);
$arr = [0, 1, 2, 3];
print_r($arr);
第一个打印为什么会是[2,3,0,1];
$arr[2] = 2;
$arr[3] = 3;
$arr[0] = 0;
$arr[1] = 1;
print_r($arr);
$arr = [0, 1, 2, 3];
print_r($arr);
第一个打印为什么会是[2,3,0,1];
1 回答4.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答831 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答708 阅读✓ 已解决
php数组下标并不是与其他语言(C, Java)的下标等同. php数组的下标是类似Java Map里的键值.
即php array是key->value构成的键值对.
相应的php也有很多处理函数分别是针对key和value的, 比如
ksort
是按键值排序,sort
是按value排序.如果你想按顺序输出,可以用如下代码
你会发现输出便一致了.
php这样设计有很多好处.
如:
上面的代码如果是连续下标地方式分配内存的话,非常浪费且难以实现, 但如果是键值对的话便很容易.