array_push()和$ array =之间的区别

在PHP手册中,( array_push )说..

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

例如 :

$arr = array(); array_push($arr, "stackoverflow"); print_r($arr); 

VS

 $arr[] = "stackoverflow"; print_r($arr); 

我不明白为什么有一个很大的区别。

当你在PHP中调用一个函数(比如array_push() )时,调用会有开销,因为PHP必须查找函数引用,在内存中find它的位置并执行它定义的任何代码。

使用$arr[] = 'some value'; 不需要函数调用,并直接将其添加到数据结构中。 因此,当添加大量数据时,使用$arr[]更快更省资源。

您可以使用array_push将一个以上的元素添加到数组中,

例如array_push($array_name, $element1, $element2,...)

其中$ element1,$ element2,…是要添加到数组的元素。

但是如果你想一次只添加一个元素,那么其他方法(例如使用$ array_name [])应该是首选。

不同之处在于:“因为这样就没有调用函数的开销”。

如果第一个参数不是数组, array_push()会引发警告。 这与创build新数组的$var[]行为不同。

如果可能的话,应该总是使用$array[] ,因为框状态表示函数调用没有任何开销。 因此比函数调用要快一些。

array_push – 将一个或多个元素推到数组的末尾

注意到“使用$arr[]来做到这一点的$arr[] 或多个元素 ”,您将必须获得数组的最大大小

解释:1.第一个声明数组中的variables。

2.第二个array_push方法用于推送数组variables中的string。

3.最终会打印结果。

第二种方法是直接将string存储在数组中。

5.使用print_r方法将数据打印在数组值中。

这两个是一样的

用正常的话说..

 // produces: array(0=>'foo', 1=>'bar'); $arr[] = 'foo' $arr[] = 'bar' //produces: array('foo', 'bar'); array_push($arr, 'foo', 'bar'); 

我知道这是一个旧的答案,但是可能有助于其他人了解两者之间的另一个区别是,如果每个循环向数组添加2/3以上的值,则使用速度会更快:

  for($i = 0; $i < 10; $i++){ array_push($arr, $i, $i*2, $i*3, $i*4, ...) } 

代替:

  for($i = 0; $i < 10; $i++){ $arr[] = $i; $arr[] = $i*2; $arr[] = $i*3; $arr[] = $i*4; ... } 

编辑 – 忘记closures括号的条件

两者都是一样的,但是array_push在它的参数中做一个循环,它是一个数组并且执行$ array [] = $ element