PHP:使用mysql_fetch_array更快的阵列populatin

时间:2011-02-17 10:29:15

标签: php mysql

在C ++和JavaScript中,建议创建一个具有指定长度的数组,然后填充它。在PHP中有这样的语法吗?或者没有必要,因为PHP的数组是哈希?

ps:我正在使用mysql_fetch_array从mysql填充一个数组,我正在运行一个循环,所以=(

3 个答案:

答案 0 :(得分:2)

如果性能非常重要,您可以使用标准PHP库(SPL)中的SplFixedArray。一般来说,reguluar php数组都可以,不用担心所需数组的大小。

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

它们像其他语言中的数组一样工作。从文档“优势是它允许更快的阵列实现。”

答案 1 :(得分:1)

你根本不必担心。
尽管有一些古老书中的理论推荐,但在现实生活中的实际用法中,差异可以忽略不计,你永远不会注意到差异。

通常的网页很少会从数据库中填充超过100行。相信我,这样大小的阵列不是一件值得担心的事情 如果碰巧有一个更大的数组,你必须考虑不首先使用数组。

答案 2 :(得分:1)

你可以这样做:

$size = 10;
$data = new SplFixedArray($size);
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
    if($data->offsetExists($i)) {
        $data[$i] = $row;
    } else {
        $size += 10;
        $data->setSize($size);
        $data[$i] = $row;
    }
    $i++;
}

但我的建议是坚持正常的阵列。