在C++和JavaScript中,建议创建一个具有指定长度的数组,然后填充它。在PHP中有这样的语法吗?或者没有必要,因为PHP的数组是一个散列?PHP:更快地使用mysql_fetch_array的数组populatin
PS:我使用的是mysql_fetch_array
填充从MySQL一个数组,我运行一个循环,它使=(
在C++和JavaScript中,建议创建一个具有指定长度的数组,然后填充它。在PHP中有这样的语法吗?或者没有必要,因为PHP的数组是一个散列?PHP:更快地使用mysql_fetch_array的数组populatin
PS:我使用的是mysql_fetch_array
填充从MySQL一个数组,我运行一个循环,它使=(
你可以做这样的事情:
$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++;
}
但我的建议是坚持正常的阵列。
您可以从标准PHP库(SPL)使用SplFixedArray,如果性能是非常重要的在一般reguluar PHP数组会被罚款,而不必担心阵列所需的大小。
http://www.php.net/manual/en/class.splfixedarray.php
他们的工作就像阵列中其他汉语语言做的。从文档“的好处是,它允许更快的阵列实施“。
你根本不用担心。
尽管理论来自一些古籍的建议,在现实生活中的实际用法的差异将可以忽略不计,你永远不会注意到的差异。
通常的网页很少从数据库中填充超过100行。相信我,这样大小的数组并不是一件值得担心的事情。
如果它碰巧有一个更大的数组的大小,你必须首先考虑不使用数组。
,但如果我们必须填充100行,那么`SplFixedArray`比标准数组快30%(!)! ; P – meze 2011-02-17 11:02:00
`SplFixedArray`不适合小数组 – meze 2011-02-17 10:51:59
谢谢,我从来没有听说过`SplFixedArray`!我将在稍后测试性能以选择最佳方式 – Dan 2011-02-17 11:08:20