你好人。
我知道一些將元素添加到PHP數組中的方法。
$anArray[] = $newElement;
< -I這樣一個
array_push()
< -I've看到很多人使用它。
還有其他人,我敢肯定。
我想知道其中哪些更有效率,或者是否有另一種更有效的方法。
注意:我只是想添加一個元素,可能在數組的末尾。我的意思是我不會指定新元素在什麼位置添加。
你好人。
我知道一些將元素添加到PHP數組中的方法。
$anArray[] = $newElement;
< -I這樣一個
array_push()
< -I've看到很多人使用它。
還有其他人,我敢肯定。
我想知道其中哪些更有效率,或者是否有另一種更有效的方法。
注意:我只是想添加一個元素,可能在數組的末尾。我的意思是我不會指定新元素在什麼位置添加。
賦值運算符會稍快[不需要進行函數調用],但使用array_push()
時,可以一次追加多個變量。
其實,這取決於你要完成什麼。只是向數組中添加一個值,而不考慮數組鍵,還是數組鍵必須是特定的?您建議的第一種方式允許您爲該值分配一個自定義鍵,array_push()
將簡單地分配一個大於前一個鍵的數字鍵。
此外,array_push()
將讓你在同一時間多個值添加到一個數組,像這樣:
array_push($myArray, "value1", "value2", "value3");
你可以做同樣的你的第一種方法,這純粹是大量的重複。 :)
如果關鍵不重要,或只需要添加一個值,那麼我只是說這是一個意見問題。
沒有一個比其他人更有效率。
PHP是一種高級語言,在大多數情況下,像這些簡單的等價操作會生成完全相同的操作碼。
在極少數情況下,生成的低級代碼存在差異,它的級別如此之快以致於試圖操縱它們將被視爲微優化。
總之,根本不用擔心。寫PHP代碼,它做它所做的事情,你會沒事的。
我知道這個差別可能很小。但是,如果在一個循環內,比如說一萬次迭代,這些小的差異可能會增加一些顯而易見的事情。 – 2011-05-21 00:38:56
@Felipe:從技術上講,這是可能的。但是,當語義相同時,編譯過程幾乎總是會使這樣的事情完全無效。_Trust_你的編譯器,甚至[或者尤其是]當它是PHP時,編譯過程是隱式的。 – 2011-05-21 00:40:29
感謝您的提示。我已經看過那個。 – 2011-05-21 00:40:46