2011-05-21 126 views
0

可能重複:
Php array_push() vs myArray[]在經營方面將元素添加到陣列中PHP

你好人。

我知道一些將元素添加到PHP數組中的方法。

$anArray[] = $newElement; < -I這樣一個

array_push() < -I've看到很多人使用它。

還有其他人,我敢肯定。

我想知道其中哪些更有效率,或者是否有另一種更有效的方法。

注意:我只是想添加一個元素,可能在數組的末尾。我的意思是我不會指定新元素在什麼位置添加。

+0

感謝您的提示。我已經看過那個。 – 2011-05-21 00:40:46

回答

2

賦值運算符會稍快[不需要進行函數調用],但使用array_push()時,可以一次追加多個變量。

0

其實,這取決於你要完成什麼。只是向數組中添加一個值,而不考慮數組鍵,還是數組鍵必須是特定的?您建議的第一種方式允許您爲該值分配一個自定義鍵,array_push()將簡單地分配一個大於前一個鍵的數字鍵。

此外,array_push()將讓你在同一時間多個值添加到一個數組,像這樣:

array_push($myArray, "value1", "value2", "value3"); 

你可以做同樣的你的第一種方法,這純粹是大量的重複。 :)

如果關鍵不重要,或只需要添加一個值,那麼我只是說這是一個意見問題。

1

沒有一個比其他人更有效率。

PHP是一種高級語言,在大多數情況下,像這些簡單的等價操作會生成完全相同的操作碼。

在極少數情況下,生成的低級代碼存在差異,它的級別如此之快以致於試圖操縱它們將被視爲微優化。

總之,根本不用擔心。寫PHP代碼,它做它所做的事情,你會沒事的。

+0

我知道這個差別可能很小。但是,如果在一個循環內,比如說一萬次迭代,這些小的差異可能會增加一些顯而易見的事情。 – 2011-05-21 00:38:56

+0

@Felipe:從技術上講,這是可能的。但是,當語義相同時,編譯過程幾乎總是會使這樣的事情完全無效。_Trust_你的編譯器,甚至[或者尤其是]當它是PHP時,編譯過程是隱式的。 – 2011-05-21 00:40:29