如何使用PHP制作大数组(26000 x 26000)?

时间:2016-04-25 12:40:01

标签: php arrays out-of-memory fatal-error memory-limit

我尝试用PHP创建数组。阵列的尺寸是26000 x 26000.是否可以使阵列变大?我已经尝试制作尺寸为10000 x 10000的数组,但程序一直告诉我:

  

致命错误:第24行的C:\ xampp \ htdocs \ matrix \ index.php内存不足(分配1886388224)(试图分配24个字节)

我有8GB内存,我已经在php.ini中设置了memory_limit -1(apache配置)。构建数组的代码是:

function zeros($rowCount, $colCount)
{
    $matrix = array();
    for ($rowIndx=0; $rowIndx<$rowCount; $rowIndx++)
    {
        $matrix[] = array();
        for($colIndx=0; $colIndx<$colCount; $colIndx++)
        {
            $matrix[$rowIndx][$colIndx]=0;
        }
        var_dump(memory_get_usage());
    }
    return $matrix;
}

$matrix = zeros(25000,25000);

我也尝试过使用SplFixedArray,但结果是一样的。 请帮帮我,谢谢! :)

1 个答案:

答案 0 :(得分:-1)

你也可以使用这段代码

    $mon = range(1, 26000);
    for($i=0;$i<=25999;$i++){
        $mon[$i]    =   range(1, 26000);
    }