PHP合并數(shù)組

PHP合并數(shù)組

1.合并數(shù)組

??????1.arrary_merge

示例代碼:

$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(1, 2, 6, 7, 8, 9, 10);
$result1 = array_merge($arr1, $arr2);


$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龍果", "age" => 13, "sex" => "Male");
$result2 = array_merge($arr3, $arr4);


echo "<pre>";
var_dump($result1);
var_dump($result2);

運(yùn)行上面的代碼,輸出結(jié)果如下圖所示:

array_merge.png

普通數(shù)組合并時(shí),會把第二個(gè)數(shù)組放到第一個(gè)數(shù)組后面,拼接后返回。
但是對于鍵值對的數(shù)組來說,如果有相同的鍵,那么第二個(gè)數(shù)組會覆蓋第一個(gè)數(shù)組相同的鍵所對應(yīng)的值。

??????2.通過+合并

示例代碼:

$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(1, 2, 6, 7, 8, 9, 10);
$result1 = $arr1 + $arr2;


$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龍果", "age" => 13, "sex" => "Male", "id" => "411521");
$result2 = $arr3 + $arr4;

echo "<pre>";
var_dump($result1);
var_dump($result2);

運(yùn)行上面的代碼,輸出結(jié)果如下圖所示:

array+.png

可以看到,對于用"+"來合并兩個(gè)數(shù)組而言,無論是普通數(shù)組還是鍵值對型數(shù)組,只要下標(biāo)相同或者鍵相同,都是前者覆蓋后者。這一點(diǎn)需要注意。

2.連接兩個(gè)數(shù)組

array_combine()函數(shù)會得到一個(gè)新數(shù)組,它由一組提交的鍵和對應(yīng)的值組成。
示例代碼:

$arr1 = array("A","B","C","D"); 
$arr2 = array("paul","itbsl","Golang","PHP"); 
$result = array_combine($arr1,$arr2); 
echo '<pre>';
var_dump($result);

運(yùn)行上面的代碼,輸出結(jié)果如下圖所示:

array_combine.png

注意:如果需要合并數(shù)組成為上面的形式,那么合并的兩個(gè)數(shù)組的長度必須相等,也就是count($arr1) == count($arr2),并且不能為空

3.遞歸追加數(shù)組

array_merge_recursive()函數(shù)與array_merge()相同,可以將兩個(gè)或多個(gè)數(shù)組合并在一起,形成一個(gè)聯(lián)合的數(shù)組.兩者之間的區(qū)別在于,當(dāng)某個(gè)輸入數(shù)組中的某個(gè)鍵己經(jīng)存在于結(jié)果數(shù)組中時(shí)該函數(shù)會采取不同的處理方式.array_merge()會覆蓋前面存在的鍵/值對,替換為當(dāng)前輸入數(shù)組中的鍵/值對,而array_merge_recursive()將把兩個(gè)值合并在一起,形成一個(gè)新的數(shù)組,并以原有的鍵作為數(shù)組名。
示例代碼:

$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龍果", "age" => 13, "sex" => "Male");
$result2 = array_merge_recursive($arr3, $arr4);

echo "<pre>";
var_dump($result2);

運(yùn)行上面的代碼,輸出結(jié)果如下圖所示:


array_merge_recursive.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評論 19 139
  • 一、Array_key_exists();檢查給定的鍵名或索引是否存在于數(shù)組中二、array_keys ()返回?cái)?shù)...
    peng_js閱讀 425評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評論 25 708
  • 豆瓣評分8.9/日期2017.1.29/英文版/時(shí)長:90分鐘/類型:喜劇 愛情 這是我看完之后心里觸動最大的一部...
    XIONG_LI_閱讀 1,709評論 0 5
  • 只剩最后三個(gè)禮拜,堅(jiān)持到底,誰都不為,只為自己,離開這個(gè)地方
    景塵閱讀 109評論 0 0

友情鏈接更多精彩內(nèi)容