PHP数组如何实际工作?

时间:2014-09-09 19:26:49

标签: php arrays

我正在学习PHP,而且我有一个困扰我的问题。 PHP数组似乎是内部的哈希映射。如果给一个数组一个键和一个值,它几乎肯定必须通过某种散列函数将它放在一个实际的数组中,对吧?那么,为什么我给数组一系列键和值,然后将它们转储到屏幕上,PHP是否保持输入值的顺序?

例如:

$arr = array();
$arr[1] = 'one';
$arr[3] = 'three';
$arr[2] = 'two';

foreach($arr as $key => $val)
    echo "$key => $val<br>"

会渲染&#34; 1 => one, 2 => two, 3 => three&#34;在一个典型的hashmap中,但我得到了&#34; 1 => one, 3 => three, 2 => two。&#34;对我来说意味着必须存在和命令以及以实际存在的任何数据类型维护密钥。

提前感谢您的任何解释。

1 个答案:

答案 0 :(得分:4)

将数组存储为哈希表或有序映射是正确的。基本上,PHP中的所有内容都是哈希表。

见这里:Understanding PHP's internal array implementation