有一个简单,快速的数组在PHP


Is there a simple, fast array in PHP?

我需要一个简单的数组,在PHP中使用最小的内存。我想要一个完全等同于c++的内存分配块,在那里你只能使用索引进行迭代。我发现PHP中的数组比我们说:size*type_size(我猜用于存储键值等)使用更多的内存。还有比这更简单的吗?

编辑:

谢谢大家。

是的,我在发布问题后立即想到了字符串的想法。我需要一个布尔数组,这样就可以了。只是获取/设置它的字符有点慢。

Judy数组看起来也很有趣,但我还没有尝试过。

我尝试过SplFixedArray,但似乎它使用了相同数量的内存正常数组(除非我错过了路上的东西)。

您可以使用SplFixedArray,它似乎符合您的要求。

我需要一个简单的数组,在PHP中使用最小的内存。

PHP中最快的数组类型实际上是字符串。它也是最不需要记忆的;最接近C语言的等价数据结构
 $byte = ord($string[123]);

索引。但是限制当然是它只对字节值起作用。)你没有详细说明你的需要。所以这是你的一般答案。)

作为固定长度的替代SplFixedArray PHP也有一个扩展Judy数组。它们是关联的,但与php相比节省内存;而且据说要快一点。(在脚本语言中关心这个没有多大意义,但是嘿。)

http://php.net/manual/en/class.splfixedarray.php

SplFixedArray类提供了数组的主要功能。SplFixedArray和普通PHP数组的主要区别在于,SplFixedArray的长度是固定的,并且只允许范围内的整数作为索引。优点是它允许更快的数组实现。

最接近的

你别无选择。
PHP中所有数组都是相同的有序映射。

如果您遇到数组的任何内存问题,我建议使用一些更相关的技术。

PHP被设计成每个用户请求web服务器处理相对少量的数据。

Judy库和它的PHP扩展是在PHP中使用数组的一个很好的方法。