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:我删除了我的否决票,因为你添加了这样一句话:“我个人总是使用[]符号,主要是因为我认为它更干净,但也更快。”。这是你应该改变它的唯一原因。非常微小的性能差异不是停止使用函数的有效理由。如果你的应用程序因为一个愚蠢的函数调用而超时,你有更大的事情要担心。