PHP中数组的最大大小是多少?

时间:2011-07-28 09:05:57

标签: php arrays

我们希望将数据库值存储在数组中。但我们不知道PHP中允许的数组的最大大小?

4 个答案:

答案 0 :(得分:39)

数组的限制没有最大值。脚本可以使用的内存量有限制。这可以在php.ini配置中的'memory_limit'中更改。

答案 1 :(得分:13)

数组大小仅受服务器内存量的限制。如果你的数组太大,你将会出现“内存不足”的错误。

答案 2 :(得分:3)

在我看来,这是16位有符号整数限制。 (2 ^ 15)

$ar = [];
while (array_push($ar, null)) {
    print 'a';
}

输出长度:32768

答案 3 :(得分:2)

如果像我一样,您需要在PHP 5.6.40的类中使用一个巨大的数组,并且发现类数组的大小受到限制,以使它们在超过32768个元素时会溢出并被覆盖,那么这是我发现可以使用的解决方案。

创建一个带有巨大数组作为局部变量的公共函数。然后将该局部变量分配给类变量。在构造函数中直接调用此函数。您将看到它打印出正确的数组大小,而不是溢出的剩余大小。

class Zipcode_search {
   public $zipcodes;

   public function __construct() {
                $this->setHugeArray();
                print "size is ".sizeof($this->zipcodes). "<br />";
    }

    public function setHugeArray(){
        $zipcodes=[too much stuff];//actual array with +40,000 elements etc.
        $this->zipcodes = $zipcodes;
    }

}