什么是Php阵列的CS定义?

时间:2009-01-27 07:22:02

标签: php data-structures computer-science

从严格的实施和计算机科学的角度来看,您如何对Php阵列数据结构进行分类?它是一个关联数组吗?哈希?一本字典? ......?

4 个答案:

答案 0 :(得分:8)

来自PHP manual

  

PHP中的数组实际上是有序的   地图。地图是一种关联的类型   键的值。此类型已优化   用于几种不同的用途;有可能   作为数组处理,列表(向量),   哈希表(一个实现的   地图),字典,集合,堆栈,   排队,可能更多。

答案 1 :(得分:3)

嗯,这取决于您希望如何对其进行分类。我选择按操作性能进行分类。

例如,计算机科学术语中的真实数组具有O(1)查找时间,而链表具有O(n)查找时间。插入和删除在链表中是O(1),而在数组中是O(n)。

我不确定PHP数组的实际性能是什么,但如果你测量它们的一些基本操作并将它们与'真正的计算机科学数据结构'的预期进行比较,你应该能够对它进行分类

答案 2 :(得分:1)

在我看来,定义它有点困难。虽然,我认为我会将它归类为关联数组,因为关联数组的大多数定义操作都可以在PHP数组中使用。

答案 3 :(得分:0)

这取决于你想要真正定义的内容。 字典映射指的是数据类型的行为,而 hashmap 指的是此处的特定实现。术语 array 有点着色 - 严格地说,它指的是具体实现,而 list 是指任何类似数组的数据类型的通用术语。然而,使用 array 作为 list 的同义词是很常见的。