php合併數組,一般會使用array_merge方法。
array_merge — 合併一個或多個陣列
array array_merge ( array $array1 [, array $... ] )
array_merge 將一個或多個陣列的單元合併起來,一個陣列中的值附加在前一個陣列的後面,傳回作為結果的陣列。
如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆寫前一個值。然而,如果數組包含數字鍵名,後面的將不會覆蓋原來的值,而是附加到後面。
如果只給了一個陣列且該陣列是數字索引的,則鍵名會以連續方式重新索引。
範例1,陣列使用字串鍵名,相同的鍵名會被後面的覆寫
<?php$arr1 = array('name'=>'fdipzone');$arr2 = array('name'=>'terry');$result = array_merge($arr1, $arr2); print_r($result);?>
#輸出:
Array( [name] => terry )
範例2,陣列使用數字鍵名,鍵名相同不會覆蓋,且鍵名會重新索引
<?php$arr1 = array(0=>'fdipzone',1=>'terry');$arr2 = array(0=>'php',1=>'python');$result = array_merge($arr1, $arr2); print_r($result);?>
輸出:
Array( [0] => fdipzone [1] => terry [2] => php [3] => python )
因工作需要,需要將問卷的兩部分選擇題的答案合併一起,每部分答案為數組(key=>value),key為題號,value為答案,且兩部分的題號不存在重複。
使用array_merge合併兩部分答案
<?php$form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D');$form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C');$result = array_merge($form_data1, $form_data2); print_r($result);?>
輸出:
Array( [0] => A [1] => B [2] => C [3] => D [4] => B [5] => A [6] => D [7] => C )
使用array_merge合併,因為題號(key)是數字,所以鍵名會重新索引,導致題號不能保留。
合併陣列並保留鍵值的方法:
<?php$form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D');$form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C');$result = $form_data1 + $form_data2; print_r($result);?>
#輸出:
Array( [11] => A [12] => B [13] => C [14] => D [25] => B [26] => A [27] => D [28] => C )
使用“ ” 運算符合併數組,可以保留數組的鍵值,如果合併的數組中含有相同的鍵值,後面的不會覆蓋前面的鍵值(前面的優先)。
這篇文章說明如何使用php合併陣列並保留鍵值的方法 ,更多相關內容請注意php中文網。
相關推薦:
以上是如何使用php合併陣列並保留鍵值的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!