在PHP手册中,(array_push)说..
如果你使用 array_push()将一个元素添加到数组中,那么最好是 使用 $ array [] = 因为这样就没有调用a的开销 功能
例如:
$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);
VS
$arr[] = "stackoverflow";
print_r($arr);
我不明白为什么会有很大的不同。
答案 0 :(得分:143)
当您在PHP中调用函数(例如array_push()
)时,调用会产生开销,因为PHP必须查找函数引用,在内存中找到它的位置并执行它定义的任何代码。 / p>
使用$arr[] = 'some value';
不需要函数调用,并直接在数据结构中实现添加。因此,在添加大量数据时,使用$arr[]
可以更快,更节省资源。
答案 1 :(得分:42)
您可以使用array_push,
一次将多个元素添加到数组中 e.g。 array_push($array_name, $element1, $element2,...)
其中$ element1,$ element2,...是要添加到数组的元素。
但是如果你想一次只添加一个元素,那么应该首选其他方法(即使用$ array_name [])。
答案 2 :(得分:13)
区别在于下面的行“因为这样就没有调用函数的开销。”
如果第一个参数不是,{p>array_push()
将发出警告 数组。这与新数组的$var[]
行为不同 创建
答案 3 :(得分:7)
如果可能,您应该始终使用$array[]
,因为该框表示函数调用没有开销。因此它比函数调用快一点。
答案 4 :(得分:4)
array_push - 将一个或多个元素推送到数组的末尾
注意“一个或多个元素到最后”
要使用$arr[]
执行此操作,您必须获得数组的最大大小
答案 5 :(得分:2)
解释: 1.第一个在数组中声明变量。
2.第二个array_push方法用于推送数组变量中的字符串。
3.最后它会打印结果。
4.第二种方法是直接将字符串存储在数组中。
5.使用print_r方法在数组值中打印数据。
这两个是相同的
答案 6 :(得分:1)
两者都是一样的,但是array_push在它的参数中创建了一个循环,它是一个数组并执行$ array [] = $ element
答案 7 :(得分:1)
没有人说,但是array_push只将一个元素推送到了ARRAY的结尾,其中$ array [index]可以在任何给定的索引处插入一个值。差异很大。
答案 8 :(得分:0)
我知道这是一个陈旧的答案,但对其他人来说,知道两者之间的另一个区别是,如果你必须为每个循环添加超过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;
...
}
编辑 - 忘记关闭for
条件