PHP三種數組合並方式


一、PHP三種數組合並方式

目前工作中接觸到的PHP數組合並方式主要有三種: 
1、+操作符 
2、array_merge() 
3、array_merge_recursive()

它們的區別主要體現在對於相關鍵名(數字鍵名、字符串鍵名)的處理方式。

二、相同字符串鍵

 
$arrFirst = [
    "first_key"  => 1,
    "second_key" => 1,
    "third_key"  => 1,
];

$arrSecond = [
    "first_key"  => 2,
    "second_key" => 2,
    "fourth_key" => 2,
];

//對於重復的字符串鍵,array_merge后,后面數組的鍵值會覆蓋前面的
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));

//對於重復的字符串鍵,+操作后,前面數組的鍵值會覆蓋后面的
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));

//對於重復的字符串鍵,array_merge_recursive后,相同鍵名的鍵值會被合並到同一數組中(會遞歸)
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));

  運行結果:

 

 

三、相同數字鍵

$arrFirst = [
    111 => "first",
    222 => "first",
    "first" //會指定默認的數字鍵223
];

$arrSecond = [
    111 => "second",
    333 => "second",
    "second" //會指定默認的數字鍵334
];

//對於重復的數字鍵,+操作后,前面數組的鍵值會覆蓋后面的,保留之前數字鍵
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));

//對於重復的數字鍵,array_merge后,重排數字鍵,不會覆蓋
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));

//對於重復的數字鍵,array_merge_recursive后,重排數字鍵,不會覆蓋
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));

  

 


免責聲明!

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



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