十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
首先你的思路是正確的,這點(diǎn)可以肯定,合并數(shù)組可以使用array_merge() 這個(gè)函數(shù),

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、新鄉(xiāng)縣網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、新鄉(xiāng)縣網(wǎng)絡(luò)營(yíng)銷、新鄉(xiāng)縣企業(yè)策劃、新鄉(xiāng)縣品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供新鄉(xiāng)縣建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
array_merge() 函數(shù)把兩個(gè)或多個(gè)數(shù)組合并為一個(gè)數(shù)組。
如果鍵名有重復(fù),該鍵的鍵值為最后一個(gè)鍵名對(duì)應(yīng)的值(后面的覆蓋前面的)。如果數(shù)組是數(shù)字索引的,則鍵名會(huì)以連續(xù)方式重新索引。
我不是很清楚你是要怎么合并,但是我推測(cè)是第二種效果
第一種效果:
?php
$a?=?Array?(
"28150000"?=?Array?(
0?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?'81753'?
),
'1'?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81757?
)?
)
,
"28160000"?=?Array?(
0?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81759?
),
1?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81754?
)?
)
?
);
$b?=?Array?(
"28150000"?=?Array?(
1?=?Array?(
'old_keywordid'?=?11933,
'old_keyword'?=?'鮮花'?
)?
),
"28160000"?=?Array?(
0?=?Array?(
'old_keywordid'?=?12478,
'old_keyword'?=?'鮮花'?
)?
)?
)
;
//?var_dump($a);
var_dump(array_replace_recursive($a,$b));
運(yùn)行的結(jié)果:
array?(size=2)
28150000?=?
array?(size=2)
0?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?string?'81753'?(length=5)
1?=?
array?(size=5)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81757
'old_keywordid'?=?int?11933
'old_keyword'?=?string?'鮮花'?(length=6)
28160000?=?
array?(size=2)
0?=?
array?(size=5)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81759
'old_keywordid'?=?int?12478
'old_keyword'?=?string?'鮮花'?(length=6)
1?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81754
第二 種效果
由于你的key是數(shù)字,即使是用字符串表示,在php的數(shù)組中也是數(shù)字,因此不能夠使用array_merge_recursive,真是麻煩,如果你是一維的,我可以寫一個(gè)函數(shù),但是如果是多維的,就沒有辦法了
?php
$a?=?Array?(
"28150000"?=?Array?(
0?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?'81753'?
),
1?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81757?
)?
)
,
"28160000"?=?Array?(
0?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81759?
),
1?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81754?
)?
)
?
);
$b?=?Array?(
"28150000"?=?Array?(
1?=?Array?(
'old_keywordid'?=?11933,
'old_keyword'?=?'鮮花'?
)?
),
"28160000"?=?Array?(
0?=?Array?(
'old_keywordid'?=?12478,
'old_keyword'?=?'鮮花'?
)?
)?
)
;
function?array_merge_number($array1,$array2){
foreach($array1?as?$key=$val){
if($array2[$key]){
$val?=?array_merge($array2[$key],$val);
}
}
return?$array1;
}
var_dump(array_merge_number($a,?$b));
運(yùn)行結(jié)果:
array?(size=2)
28150000?=?
array?(size=3)
0?=?
array?(size=2)
'old_keywordid'?=?int?11933
'old_keyword'?=?string?'鮮花'?(length=6)
1?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?string?'81753'?(length=5)
2?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81757
28160000?=?
array?(size=3)
0?=?
array?(size=2)
'old_keywordid'?=?int?12478
'old_keyword'?=?string?'鮮花'?(length=6)
1?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81759
2?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81754
我很想寫一個(gè)能夠深度合并的函數(shù),但是怎么考慮都不合適,28160000是key值,并且是數(shù)字性的,記住array中key值只能是數(shù)字和字符串,28160000即使你寫成'28160000'也只會(huì)當(dāng)成數(shù)字,你里面的2 1 0也都是數(shù)字,很明顯,你不想要28160000被當(dāng)成數(shù)字,但是你想要0 1 2被當(dāng)成數(shù)字,這就很難辦了,如果你可以把28160000改成不能解析稱數(shù)字的字符串,那么請(qǐng)用array_merge_recursive,這個(gè)已經(jīng)足夠滿足你的需求了:
?php
$a?=?Array?(
"2815-0000"?=?Array?(
0?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?'81753'?
),
1?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81757?
)?
)
,
"2816-0000"?=?Array?(
0?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81759?
),
1?=?Array?(
'keywordid'?=?3653,
'keyword'?=?'鮮花',
'orders_id'?=?81754?
)?
)
?
);
$b?=?Array?(
"2815-0000"?=?Array?(
1?=?Array?(
'keywordid'?=?11933,
'old_keyword'?=?'鮮花'?
)?
),
"2816-0000"?=?Array?(
0?=?Array?(
'old_keywordid'?=?12478,
'old_keyword'?=?'鮮花'?
)?
)?
)
;
var_dump(array_merge_recursive($a,?$b));
運(yùn)行結(jié)果:
array?(size=2)
'2815-0000'?=?
array?(size=3)
0?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?string?'81753'?(length=5)
1?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81757
2?=?
array?(size=2)
'keywordid'?=?int?11933
'old_keyword'?=?string?'鮮花'?(length=6)
'2816-0000'?=?
array?(size=3)
0?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81759
1?=?
array?(size=3)
'keywordid'?=?int?3653
'keyword'?=?string?'鮮花'?(length=6)
'orders_id'?=?int?81754
2?=?
array?(size=2)
'old_keywordid'?=?int?12478
'old_keyword'?=?string?'鮮花'?(length=6)
如果你不能的話,那么就使用我寫的那個(gè)函數(shù)
php兩個(gè)普通數(shù)組合并為一個(gè)普通數(shù)組可以參考下面的代碼:
?php
$a=array(1,2,3,4,5);
$b=array(6,7,8,9,10);
$c=array_merge($a,$b);
print_r($c);
?
注:當(dāng)被合并的數(shù)組中有一個(gè)數(shù)組為空時(shí),可能會(huì)出現(xiàn)合并后的數(shù)組也為空。
擴(kuò)展資料:
PHP常用函數(shù)
printf()函數(shù)輸出格式化的字符串。?
print()函數(shù)輸出一個(gè)或多個(gè)字符串。
parse_str()函數(shù)把查詢字符串解析到變量中。
ord() 函數(shù)返回字符串第一個(gè)字符的 ASCII 值。
number_format()函數(shù)通過千位分組來格式化數(shù)字。
nl2br()函數(shù)在字符串中的每個(gè)新行 (\n) 之前插入 HTML 換行符 (br /)。
nl_langinfo()函數(shù)返回指定的本地信息。
參考資料來源:百度百科-PHP (超文本預(yù)處理器)
$arr1?=?array(1,1,2,2,6);
$arr2?=?array(4,6,1,7,3);
$result?=?array();
foreach($arr1?as?$k?=?$v){
if?(!array_key_exists($v,$result))?$result[$v]?=?array();
array_push($result[$v],?$arr2[$k]);
}
array?array_merge?????(?array?$array1????[,?array?$...???]?)
array_merge() ?將一個(gè)或多個(gè)數(shù)組的單元合并起來,一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面。返回作為結(jié)果的數(shù)組。 ?
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會(huì)覆蓋原來的值,而是附加到后面。 ?
如果只給了一個(gè)數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會(huì)以連續(xù)方式重新索引。
如果你想完全保留原有數(shù)組并只想新的數(shù)組附加到后面,用 + 運(yùn)算符:
?php
$array1??=?array(?0??=??'zero_a'?,??2??=??'two_a'?,??3??=??'three_a'?);
$array2??=?array(?1??=??'one_b'?,??3??=??'three_b'?,??4??=??'four_b'?);
$result??=??$array1??+??$array2?;
var_dump?(?$result?);
?