亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php將兩個數組相同的key合并到一個數組

php將兩個數組相同的key合并到一個數組

梵蒂岡之花 2019-04-08 11:19:09
$arr=array(array('id'=>1,'user_name'=>'test1'),array('id'=>2,'user_name'=>'test2'),array('id'=>3,'user_name'=>'test3'));$arr2=array(array('id'=>1,'shop_name'=>'shop1'),array('id'=>5,'shop_name'=>'shop2'),array('id'=>3,'shop_name'=>'shop3'));怎么根據2個數組id相同的一維數組,將$arr2的shop_name添加到$arr,如果沒有相同的id,shop_name為空,形成如下數組:$good_arr=array(array('id'=>1,'user_name'=>'test1','shop_name'=>'shop1'),array('id'=>2,'user_name'=>'test2','shop_name'=>''),array('id'=>3,'user_name'=>'test3','shop_name'=>'shop3'));我的方案:有更好的嗎?O(∩_∩)O謝謝/*foreach($arras$key=>&$value){$value['shop_name']='';}unset($value);*/foreach($arras$k2=>&$v2){$v2['shop_name']='';foreach($arr2as$k=>$v){if($v2['id']==$v['id']){$v2['shop_name']=$v['shop_name'];}}}print_r($arr);
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

functionfilter($item)
{
returncount($item)==3?$item:false;
}
$newArr=array_filter(array_merge($arr,$arr2),'filter');
題主實在不好意思,上面這個回答我弄錯了array_merge的用法,現在重寫一個,已本機測試:
$tempArr=array();
foreach($arr2as$item)
$tempArr[$item['id']]=$item['shop_name'];
foreach($arras$k=>$v){
if(array_key_exists($v['id'],$tempArr)){
$arr[$k]['shop_name']=$tempArr[$v['id']];
}else{
$arr[$k]['shop_name']='';
}
}
$newArr=$arr;
btw,我以前也喜歡寫嵌套循環,因為邏輯比較簡單,但是自從@公子指正后,我已經開始盡量避免這種效率極低的寫法,希望答案能幫到題主!:)
                            
查看完整回答
反對 回復 2019-04-08
  • 2 回答
  • 0 關注
  • 417 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號