php 通過array_merge()和+合並數組的效率


 

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

array_merge()

格式: array array_merge ( array array1[,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();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM