我来自python背景,类似的python数据类型(字典)是一组 无序 的键值对。
我想知道PHP关联数组是否无序?他们似乎是有序的。
$test = array( 'test' => 'test', 'bar' => 'bar', ); var_dump($test); var_dump(array_slice($test, 0, 1));
测试总是在bar之前进行,我可以如您所见地对该数组进行切片。那么,是否始终保证可以跨PHP版本订购?该命令就是我声明数组的命令吗?因此,内部是否有某些东西指向“测试”以将[0]放置在数组中?我已经阅读了http://php.net/manual/en/language.types.array.php,但是在这个问题上并没有太多的启示。感谢您的答复。泰
PHP关联阵列(以及数字阵列) 是有序的 ,并且PHP提供的各种功能,以解决诸如数组键排序ksort(),uksort()和krsort()
ksort()
uksort()
krsort()
此外,PHP允许您用数字键乱序声明数组:
$a = array(3 => 'three', 1 => 'one', 2 => 'two'); print_r($a); Array ( [3] => three [1] => one [2] => two ) // Sort into numeric order ksort($a); print_r($a); Array ( [1] => one [2] => two [3] => three )
从文档中:
PHP中的数组 实际上是有序映射 。映射是一种将值与键相关联的类型。该类型已针对多种不同用途进行了优化。可以将其视为数组,列表(向量),哈希表(地图的实现),字典,集合,堆栈,队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。