php 通過array_merge()和array+array合并數組的區別和效率比較

來源:互聯網
上載者:User

標籤:class   IV   直接   個數   xmlns   數組   情況   i++   不同   

眾所周知合并兩個數組可以使用array_merge(),這是php提供的一個函數。另外還可以通過 array 的方式來合并數組,這兩種直接有什麼區別,哪一個的效率更高呢?

array_merge()格式: array array_merge ( array … ] )注意(區別):
  • 如果合并的數組使用關聯索引,數組中有相同的鍵名,則該鍵名後面的值將覆蓋前一個值。
  • 如果合并的數組使用數字索引,數組中有相同的鍵名, 後面的值將不會覆蓋原來的值,而是附加到後面。
  • 如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。
$array + $array注意(區別):
  • 如果合并的數組中有相同的鍵名,最先出現的值作為最終結果返回(和array_merge關聯索引的情況正好相反)
迴圈10萬次的用時
$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 ‘測試array_merge()和+的效率‘;echo ‘<br/>‘;$execTime = 100000;$time = time();for ($i = 0; $i < $execTime; $i++) {    array_merge($arr1,$arr2);}echo ‘用時:‘ .(time() - $time);echo ‘<br/>‘;$time = time();for ($i = 0; $i < $execTime; $i++) {    $arr1+$arr2;}echo ‘用時:‘ .(time() - $time);echo ‘<br/>‘;
輸出結果:

array_merge() : 6s 
$array + $array : 0s

總結

array_merge() 和 + 都可以起到合并數組的作用,但是它們處理相同鍵的方式不同,array_merge() 返回的是後面的鍵的值, + 返回的是第一個鍵的值。+ 的效率要高於array_merge();

php 通過array_merge()和array+array合并數組的區別和效率比較

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.