为了账号安全,请及时绑定邮箱和手机立即绑定

php 合并多维数组问题

php 合并多维数组问题

呼啦一阵风 2019-03-30 11:31:02
有2个数组$array1=[[0]=>array(3){["id"]=>"1",["uid"]=>'123',["status"]=>'0'[1]=>array(3){["id"]=>"2",["uid"]=>'321',["status"]=>'1']$array2=[[0]=>array(2){["uid"]=>"123",["name"]=>'张三'[1]=>array(2){["uid"]=>"321",["name"]=>'李四']我在循环输出array1的时候。如何把uid替换成array2中的name?foreach($array1as$item){$item['status']=$item['status']==1?'是':'否';$item['uid']=xxx;//这里如何替换成name?$newarr[]=$item;}
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

2个数组的匹配数据的位置是一一对应的么?如果这样,比较简单:
$count=count($array1);
for($i=0;$i<$count;++$i){
$array1[$i]['uid']=$array2[$i]['name'];
}
这样就可以了,这种情况用foreach反而不方便.
假如数据不匹配,需要在array2中搜索的话,给个简单的例子:
foreach($array1as&$item){
$item['uid']=get_name($array2,$item['uid']);
}
functionget_name(&$data,$uid)
{
foreach($dataas&$item){
if($item['uid']==$uid){
$name=$item['name']
unset($item);
return$name;
}
}
}
再来拓展一下
$array3=function()use($array2){
$res=array();
foreach($array2as$item){
$res[$item['uid']]=$item['name'];
}
return$res;
};
foreach($array1as&$item){
$item['uid']=$array3[$item['uid']];
}
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 343 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信