2011-02-17 38 views
0

在C++和JavaScript中,建议创建一个具有指定长度的数组,然后填充它。在PHP中有这样的语法吗?或者没有必要,因为PHP的数组是一个散列?PHP:更快地使用mysql_fetch_array的数组populatin

PS:我使用的是mysql_fetch_array填充从MySQL一个数组,我运行一个循环,它使=(

回答

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++; 
} 

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

2

您可以从标准PHP库(SPL)使用SplFixedArray,如果性能是非常重要的在一般reguluar PHP数组会被罚款,而不必担心阵列所需的大小。

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

他们的工作就像阵列中其他汉语语言做的。从文档“的好处是,它允许更快的阵列实施“。

+0

`SplFixedArray`不适合小数组 – meze 2011-02-17 10:51:59

+0

谢谢,我从来没有听说过`SplFixedArray`!我将在稍后测试性能以选择最佳方式 – Dan 2011-02-17 11:08:20

1

你根本不用担心。
尽管理论来自一些古籍的建议,在现实生活中的实际用法的差异将可以忽略不计,你永远不会注意到的差异。

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

+0

,但如果我们必须填充100行,那么`SplFixedArray`比标准数组快30%(!)! ; P – meze 2011-02-17 11:02:00