這篇文章主要講解了“php如何實現合并數組且key不變”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php如何實現合并數組且key不變”吧!
方法:1、使用“+”運算符,語法“數組1 + 數組2”;2、使用array_merge_recursive()函數,當兩個或更多個數組元素有相同的鍵名時,不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。
本教程操作環境: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如何實現合并數組且key不變”的內容了,經過本文的學習后,相信大家對php如何實現合并數組且key不變這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。