3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
沒有基準(zhǔn),但是我個(gè)人感覺看起來$array[]更干凈一些,并且誠實(shí)地在幾毫秒內(nèi)拆分頭發(fā)是無關(guān)緊要的,除非您計(jì)劃在數(shù)組中添加成千上萬個(gè)字符串。
編輯:運(yùn)行此代碼:
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
$array[] = $i;
}
print microtime(true) - $t;
print '<br>';
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
array_push($array, $i);
}
print microtime(true) - $t;
第一種方法使用的$array[]速度比第二種方法快50%。
一些基準(zhǔn)測試結(jié)果:
Run 1
0.0054171085357666 // array_push
0.0028800964355469 // array[]
Run 2
0.0054559707641602 // array_push
0.002892017364502 // array[]
Run 3
0.0055501461029053 // array_push
0.0028610229492188 // array[]
這并不奇怪,因?yàn)镻HP手冊指出了這一點(diǎn):
如果使用array_push()將一個(gè)元素添加到數(shù)組中,則最好使用$ array [] =,因?yàn)檫@樣就不會產(chǎn)生調(diào)用函數(shù)的開銷。
它的用詞方式如果array_push添加多個(gè)值更有效,我也不會感到驚訝。編輯:出于好奇,進(jìn)行了一些進(jìn)一步的測試,即使添加了大量內(nèi)容,單個(gè)$array[]通話也比一個(gè)通話快array_push。有趣。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
array_push()的主要用途是可以將多個(gè)值壓入數(shù)組的末尾。
它在文檔中說:
如果使用array_push()將一個(gè)元素添加到數(shù)組中,則最好使用$ array [] =,因?yàn)檫@樣就不會產(chǎn)生調(diào)用函數(shù)的開銷。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
一個(gè)區(qū)別是,您可以使用兩個(gè)以上的參數(shù)來調(diào)用array_push(),即您可以一次將一個(gè)以上的元素推入數(shù)組。
$myArray = array();
array_push($myArray, 1,2,3,4);
echo join(',', $myArray);
版畫 1,2,3,4
- 3 回答
- 0 關(guān)注
- 1099 瀏覽
添加回答
舉報(bào)