有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']];}
添加回答
举报
0/150
提交
取消