118

PHPのマニュアルでは、(array_push)は次のように述べています。

array_push()を使用して1つの要素を配列に追加する場合は、$ array [] =を使用することをお勧めします。これにより、関数を呼び出すオーバーヘッドがなくなります。

例えば ​​:

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

vs

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

なぜ大きな違いがあるのか​​わかりません。

4

9 に答える 9

155

PHPで関数(などarray_push())を呼び出す場合、PHPは関数参照を検索し、メモリ内のその位置を見つけて、定義されたコードを実行する必要があるため、呼び出しにオーバーヘッドがあります。

を使用$arr[] = 'some value';すると、関数呼び出しは不要であり、データ構造に直接加算を実装します。したがって、大量のデータを追加する場合は、を使用する方がはるかに高速でリソース効率が高くなります$arr[]

于 2013-01-09T10:13:34.390 に答える
44

array_pushを使用して、1回のショットで複数の要素を配列に追加できます。

例えば array_push($array_name, $element1, $element2,...)

ここで、$ element1、$ element2、...は、配列に追加される要素です。

ただし、一度に1つの要素のみを追加する場合は、他の方法(つまり、$ array_name []を使用)をお勧めします。

于 2013-01-09T10:24:02.397 に答える
17

違いは、「関数を呼び出すオーバーヘッドがないため」という次の行にあります。

array_push()最初の引数が配列でない場合、警告が発生します。$var[]これは、新しいアレイが作成される動作とは異なります。

于 2013-01-09T10:15:55.850 に答える
7

$array[]ボックスに記載されているように、関数呼び出しのオーバーヘッドがないため、可能であれば常に使用する必要があります。したがって、関数呼び出しよりも少し高速です。

于 2013-01-09T10:13:15.873 に答える
4

array_push —1つ以上の要素を配列の最後にプッシュします

「最後に1つ以上の要素」という単語に注意してください。これを行うに$arr[]は、配列の最大サイズを取得する必要があります。

于 2013-01-09T10:20:10.003 に答える
2

説明:1。最初のものは配列内の変数を宣言します。

2. 2番目のarray_pushメソッドは、配列変数の文字列をプッシュするために使用されます。

3.最後に結果を出力します。

4. 2番目の方法は、文字列を配列に直接格納することです。

5.データはprint_rメソッドを使用して配列値に出力されます。

この2つは同じです

于 2014-09-25T12:59:51.960 に答える
1

どちらも同じですが、array_pushは、配列であるパラメーターでループを作成し、$ array [] =$elementを実行します。

于 2017-10-13T21:02:23.170 に答える
0

これは古い答えですが、2つの違いは、ループごとに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編集-条件付きブラケットを閉じるのを忘れた

于 2017-06-29T15:28:21.860 に答える
-1

誰も言いませんでしたが、array_pushは要素を配列の終わりにプッシュするだけです。ここで$array[index]は任意のインデックスに値を挿入できます。大きな違い。

于 2018-04-11T19:39:02.213 に答える