標籤: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合并數組的區別和效率比較