首頁  >  文章  >  後端開發  >  php怎麼實現合併數組且key不變

php怎麼實現合併數組且key不變

青灯夜游
青灯夜游原創
2021-07-15 14:00:312693瀏覽

方法:1、使用「」運算符,語法「陣列1 陣列2」;2、使用array_merge_recursive()函數,當兩個或更多個陣列元素有相同的鍵名時,不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸組成一個陣列。

php怎麼實現合併數組且key不變

 本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

一般PHP中合併兩個陣列都會使用array_merge ()

例如:

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = array_merge($data1, $data2);
var_dump($data);

得到結果:

array(6) {
  [0]=>
  string(3) "aaa"
  [1]=>
  string(3) "bbb"
  [2]=>
  string(3) "ccc"
  [3]=>
  string(3) "ddd"
  [4]=>
  string(3) "eee"
  [5]=>
  string(3) "fff"
}

可以看到使用array_merge()會重置key值,如果key值對我們有用,不想重置,可以使用" "合併數組

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = $data1 + $data2;
var_dump($data);

得到結果:

array(6) {
  [111]=>
  string(3) "aaa"
  [222]=>
  string(3) "bbb"
  [333]=>
  string(3) "ccc"
  [444]=>
  string(3) "ddd"
  [555]=>
  string(3) "eee"
  [666]=>
  string(3) "fff"
}

 也可以使用array_merge_recursive函數,可以將一個或多個陣列的單元合併起來,一個陣列中的值附加在前一個數組的後面。傳回作為結果的數組。

函數是array_merge的升級版,在array_merge的基礎上加入下面功能: 如果相同鍵值,為數字時和array_merge一樣,重新索引;如果為字串的時候後面不再覆蓋前面,而是而是附加到後面,方式為遞歸追加;如:

 /* array_merge_recursive */
$jiaArr = array(
	'name1'=>'xiaoli',
	'name2'=>'xiaohua',
	'name3'=>'xiaoming',
	'1'=>'teacher',
);
 
$jiaBrr = array(
	'name1'=>'xiaolis',
	'name5'=>'xiaohuas',
	'name6'=>'xiaomings',
	'1'=>'teachers',
);
$jiaAll = array_merge_recursive($jiaArr,$jiaBrr);
var_dump($jiaAll);
 
/*浏览器output:
array(7) {
  ["name1"]=>
  array(2) {
    [0]=>
    string(6) "xiaoli"
    [1]=>
    string(7) "xiaolis"
  }
  ["name2"]=>
  string(7) "xiaohua"
  ["name3"]=>
  string(8) "xiaoming"
  [0]=>
  string(7) "teacher"
  ["name5"]=>
  string(8) "xiaohuas"
  ["name6"]=>
  string(9) "xiaomings"
  [1]=>
  string(8) "teachers"
}
*/

name1 兩個數組都有,沒有覆蓋而是遞歸方式追加,1 數組鍵值仍被重新排序;

推薦學習:《PHP影片教學

以上是php怎麼實現合併數組且key不變的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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