array_push()与$ array [] = ....哪个最快?

Anr*_*rgh 28 php mysql micro-optimization

我需要将从MySQL接收的值添加到数组[PHP]中,这是我得到的:

$players = array();

while ($homePlayerRow = mysql_fetch_array($homePlayerResult)) {
    $players[] = $homePlayerRow['player_id'];
}
Run Code Online (Sandbox Code Playgroud)

这是唯一的方法吗?此外,以下更快/更好?

$players = array();

while ($homePlayerRow = mysql_fetch_array($homePlayerResult)) {
    array_push($players, $homePlayerRow['player_id']);
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

Sam*_*son 28

要看...

文档说,

"如果使用array_push()向数组中添加一个元素,最好使用$ array [] =,因为这样就没有调用函数的开销."

资料来源:http://us2.php.net/array_push

因此,它归结为您希望在任何特定时刻将多少数据塞入该阵列.此外,如果使用array_push调用引用的数组不存在,则会出现回落,您将遇到错误.如果使用$ array [],将为您创建数组.

  • 我相信在使用`$ arr [] = X`之前声明一个数组(使用`$ arr = array()`)会更快.如果你的`$ arr []`语句在一些控制逻辑中,它也很有用 - 你最后还有一个变量,一个没有元素的数组. (2认同)

Hai*_*vgi 18

你可以运行并看到array_push在某些情况下更慢

http://snipplr.com/view/759/speed-test-arraypush-vs-array/

运行你的代码.请享用