web-dev-qa-db-ja.com

array_Push()と$ array [] =の違い

PHPマニュアルでは、( array_Push )と述べています。

array_Push()を使用して1つの要素を配列に追加する場合、$ array [] =その方法で関数を呼び出すオーバーヘッドがないためです。

例えば ​​:

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

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

大きな違いがある理由がわかりません。

109
l2aelba

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

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

143
BenM

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

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

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

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

42
Sujit Singh

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

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

13
Baig

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

7
Benjamin Paap

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

$arr[]を使用して配列の最大サイズを取得する必要があることを行うには、「1つ以上の要素を最後に追加する」という言葉に注意してください

4
ianace

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

2. 2番目のarray_Pushメソッドを使用して、配列変数の文字列をプッシュします。

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

4. 2番目の方法は、文字列を配列に直接保存します。

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

この2つは同じです

2
Saravana Kumar

両方とも同じですが、array_Pushは配列であるパラメーターでループを作成し、$ array [] = $ elementを実行します

1
Sara

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

1
Marco

私はこれが古い答えであることを知っていますが、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条件の括弧を閉じるのを忘れた

0

通常の言葉で..

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

//produces: array('foo', 'bar');
array_Push($arr, 'foo', 'bar');
0
Chris Visser