這篇文章主要講解了“php如何實現(xiàn)合并數(shù)組且key不變”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“php如何實現(xiàn)合并數(shù)組且key不變”吧!
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的孟連網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
方法:1、使用“+”運算符,語法“數(shù)組1 + 數(shù)組2”;2、使用array_merge_recursive()函數(shù),當(dāng)兩個或更多個數(shù)組元素有相同的鍵名時,不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸組成一個數(shù)組。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
一般PHP中合并兩個數(shù)組都會使用array_merge()
例如:
$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc']; $data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff']; $data = array_merge($data1, $data2); var_dump($data);
得到結(jié)果:
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值對我們有用,不想重置,可以使用"+"合并數(shù)組。
$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc']; $data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff']; $data = $data1 + $data2; var_dump($data);
得到結(jié)果:
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函數(shù),可以將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組。
該函數(shù)是array_merge的升級版,在array_merge的基礎(chǔ)上加入下面功能: 如果相同鍵值,為數(shù)字時和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 兩個數(shù)組都有,沒有覆蓋而是遞歸方式追加,1 數(shù)組鍵值仍被重新排序;
感謝各位的閱讀,以上就是“php如何實現(xiàn)合并數(shù)組且key不變”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對php如何實現(xiàn)合并數(shù)組且key不變這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!