我正在研究PHP Manual,但我没有看到关于大多数语言都有的数据结构的部分,比如列表和集合。我是不是太盲目了,或者PHP没有类似的内置功能?
发布于 2008-08-22 13:51:02
PHP中唯一的原生数据结构是array。幸运的是,数组非常灵活,也可以用作哈希表。
但是,也有一些SPL,它是C++ STL的克隆。
发布于 2008-08-22 13:57:22
关联数组可用于最基本的数据结构哈希表、队列、堆栈。但如果你想要像树或堆这样的东西,我不认为它们默认存在,但我相信任何地方都有免费的库。
要让数组模拟堆栈,请使用array_push()
来添加,使用array_pop()
来实现
要让数组模拟队列,请使用array_push()
入队,使用array_shift()
出队
默认情况下,关联数组是一个哈希。在PHP中,它们被允许使用字符串作为索引,因此这可以按预期工作:
$array['key'] = 'value';
最后,您可以使用可能会浪费空间的数组来模拟二叉树。如果你知道你将会有一棵小树,这是很有用的。使用线性数组,您可以说对于任何索引(i),将其左子元素放在索引(2i+1)中,将右子元素放在索引(2i+2)中。
关于如何让JavaScript数组模拟更高级别的数据结构,this article很好地介绍了所有这些方法。
发布于 2008-08-22 21:49:41
PHP的数组实际上是关联数组,也可以用作集合。像许多解释型语言一样,PHP在一个引擎盖下提供了所有这些,而不是提供不同的显式数据类型。
例如。
$lst = array(1, 2, 3);
$hsh = array(1 => "This", 2 => "is a", 3 => "test");
/Edit:还有,看看in the manual。
https://stackoverflow.com/questions/22401
复制相似问题