php 通过array_merge()和array+array合并数组的区别和效率比较
生活随笔
收集整理的這篇文章主要介紹了
php 通过array_merge()和array+array合并数组的区别和效率比较
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
眾所周知合并兩個(gè)數(shù)組可以使用array_merge(),這是php提供的一個(gè)函數(shù)。另外還可以通過(guò)?array 的方式來(lái)合并數(shù)組,這兩種直接有什么區(qū)別,哪一個(gè)的效率更高呢?
array_merge()
格式: array array_merge ( array?… ] )
注意(區(qū)別):
- 如果合并的數(shù)組使用關(guān)聯(lián)索引,數(shù)組中有相同的鍵名,則該鍵名后面的值將覆蓋前一個(gè)值。
- 如果合并的數(shù)組使用數(shù)字索引,數(shù)組中有相同的鍵名, 后面的值將不會(huì)覆蓋原來(lái)的值,而是附加到后面。
- 如果只給了一個(gè)數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會(huì)以連續(xù)方式重新索引。
$array + $array
注意(區(qū)別):
- 如果合并的數(shù)組中有相同的鍵名,最先出現(xiàn)的值作為最終結(jié)果返回(和array_merge關(guān)聯(lián)索引的情況正好相反)
循環(huán)10萬(wàn)次的用時(shí)
$arr1 = [0,1,2,3]; $arr2 = ['0'=>0,1,2,'5'=>3];var_dump(array_merge($arr1,$arr2));echo '<br/>';var_dump($arr1+$arr2);echo '測(cè)試array_merge()和+的效率'; echo '<br/>';$execTime = 100000; $time = time();for ($i = 0; $i < $execTime; $i++) {array_merge($arr1,$arr2); }echo '用時(shí):' .(time() - $time); echo '<br/>';$time = time();for ($i = 0; $i < $execTime; $i++) {$arr1+$arr2; }echo '用時(shí):' .(time() - $time); echo '<br/>';輸出結(jié)果:
array_merge() : 6s?
$array + $array : 0s
總結(jié)
array_merge() 和 + 都可以起到合并數(shù)組的作用,但是它們處理相同鍵的方式不同,array_merge() 返回的是后面的鍵的值, + 返回的是第一個(gè)鍵的值。+ 的效率要高于array_merge();
轉(zhuǎn)載于:https://www.cnblogs.com/-mrl/p/9225840.html
總結(jié)
以上是生活随笔為你收集整理的php 通过array_merge()和array+array合并数组的区别和效率比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ●BZOJ 1855 [Scoi2010
- 下一篇: sqlserver服务启动后停止,传递给