首頁  >  文章  >  後端開發  >  php合併數組函數array_merge()

php合併數組函數array_merge()

PHP中文网
PHP中文网原創
2017-11-01 10:01:295092瀏覽

array_merge()函數在php中是對陣列進行合併的,可以把多個數組合成一個數組,並且不改變原始數組的價值了,但今天我在使用array_merge合併數組時碰到幾個小細節上的問題,下面我舉例子給各位朋友看看

#1.array_merge()合併

$array = array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 = array_merge($array,$array2);

輸出結果為

Array ( [a] => bb [b] => cc )


上面因為都是數組就沒有問題了,假如我們把$array 設定不是數組看看什麼情況

$array = 1;//array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 = array_merge($array,$array2);
print_r( $array3 );

運行後結果

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in E:test1.php on (www.jb51.net)line 4

告訴我們必須是要一個數組了,那麼這個我就有多種方法來解決,

1.使用is_array() 進行判斷了,但是會發現如果合併數組比較多一個個判斷不合理,後來發現可以轉換資料類別

$array = 1;//array('a'=>'bb');
$array2 = array('b'=>'cc');
$array3 = array_merge((array)$array,(array)$array2);
print_r( $array3 );
输出结果不报错了
Array ( [0] => 1 [b] => cc )


#他自動把數字1轉換成了陣列了,所以大家在使用時一定要注意這些細節哦。

把兩個數字組合併為一個陣列:

<?php$a1=array("a"=>"red","b"=>"green");$a2=array("c"=>"blue","b"=>"yellow");print_r(array_merge($a1,$a2));?>

定義和用法

array_merge() 函數用來把一個或多個數字組合成一個陣列。

提示:您可以向函數輸入一個或多個陣列。

註解:如果兩個或更多個陣列元素有相同的鍵名,則最後的元素會覆寫其他元素。

註解:如果您僅向array_merge() 函數輸入數組,且鍵名是整數,則函數將傳回帶有整數鍵名的新數組,其鍵名以0 開始進行重新索引(參見下面的實例1)。

提示:函數與 array_merge_recursive() 函數之間的差異是處理兩個或更多陣列元素有相同的鍵名的情況。 array_merge_recursive() 不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸組成一個陣列。

語法

array_merge(array1,array2,array3...)


array1    必要。規定數組。    

array2    可選。規定數組。    

array3    可選。規定數組。    

傳回合併的陣列。      

只使用一個有整數鍵名的參數:

<?php$a=array(3=>"red",4=>"green");print_r(array_merge($a));?>

以上是php合併數組函數array_merge()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn