array_push()是否应该用于通过PHP中的迭代方法构建数组?

array_push()是否应该用于通过PHP中的迭代方法构建数组?,php,arrays,array-push,Php,Arrays,Array Push,如果我想用数据对构建一个数组,这些数据对遵循一种模式,比如$n=>myFunction($n),我想我应该这样做: $myArray = array(); foreach ($n as $key) { $new_data = array($key => myFunction($key)); array_push($myArray, $new_data); } 但是,我听说开发人员批评了array_push()函数,所以我想知道是否有更好的方法来实现这一点。这本身并不坏,

如果我想用数据对构建一个数组,这些数据对遵循一种模式,比如
$n=>myFunction($n)
,我想我应该这样做:

$myArray = array();

foreach ($n as $key) {
    $new_data = array($key => myFunction($key));
    array_push($myArray, $new_data);
}

但是,我听说开发人员批评了array_push()函数,所以我想知道是否有更好的方法来实现这一点。

这本身并不坏,但PHP中的函数调用相对较慢,因此如果在整个代码中避免
array_push
,您可能会注意到效果。就我个人而言,我总是使用
[]
符号,主要是因为我认为它更干净,但速度也更快

$myArray[] = $new_data;
就连政府也提到这是一个更快的选择:

注意:如果使用
array\u push()
向数组添加一个元素,最好使用$array[]= 因为这样就没有调用函数的开销

但是
array\u push
还有一个优点,您可以使用它将多个元素推送到一个数组中:

array_push($myArray, 'value1', 'value2', 'value3');

所以它有它的用途,但是对于一次添加单个元素,就像您所做的那样,
$myArray[]=…
的较短符号更快。

提到性能时,它似乎不太重要。出于性能原因而避免函数调用是一个可怕的建议,无论您如何看待
array\u push
性能差异(如果有的话)可能非常小。这不重要,我会把它归类为微优化。那么你们两个都没有读过这个问题。它说:“
然而,我听到开发人员批评了array_push()函数,所以我想知道是否有更好的方法来实现这一点。
”我不会建议人们突然更改代码,但如果直接询问,我会的,我有PHP.net来支持我。如果您做了一些测量,您应该注意到PHP中的函数调用非常慢。例如,我看到一个使用getter方法的应用程序在更改为直接属性访问时速度提高了30%。当然,为微优化编写更多、更详细或可读性更低的代码,或者使用一个同样容易读和写的函数或构造,并且速度更快,这两者之间是有区别的。这并不邪恶,这只是一个快速胜利。@GolezTrol:我删除了我的否决票,因为你添加了这样一句话:“我个人总是使用[]符号,主要是因为我认为它更干净,但也更快。”。这是你应该改变它的唯一原因。非常微小的性能差异不是停止使用函数的有效理由。如果你的应用程序因为一个愚蠢的函数调用而超时,你有更大的事情要担心。