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

时间:2013-01-09 10:10:04

标签: php arrays push

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

  

如果你使用 array_push()将一个元素添加到数组中,那么最好是   使用 $ array [] = 因为这样就没有调用a的开销   功能

例如:

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

VS

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

我不明白为什么会有很大的不同。

9 个答案:

答案 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条件

的括号