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