首页 / PHP / php合并多维数组问题
php合并多维数组问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php合并多维数组问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1694字,纯文字阅读大概需要3分钟。
内容图文
![php合并多维数组问题](/upload/InfoBanner/zyjiaocheng/238/7497b7d363554f6f837ef0c811ddfff6.jpg)
$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($array1 as $item) {
$item['status']= $item['status']==1?'是':'否';
$item['uid']= xxx;//这里如何替换成name?
$newarr[] = $item;
}
回复内容:
有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($array1 as $item) {
$item['status']= $item['status']==1?'是':'否';
$item['uid']= xxx;//这里如何替换成name?
$newarr[] = $item;
}
2个数组的匹配数据的位置是一一对应的么? 如果这样, 比较简单:
$count = count($array1);
for ($i = 0; $i < $count; ++$i) {
$array1[$i]['uid'] = $array2[$i]['name'];
}
这样就可以了, 这种情况用foreach反而不方便.
假如数据不匹配, 需要在array2中搜索的话, 给个简单的例子:
foreach ($array1 as &$item) {
$item['uid'] = get_name($array2, $item['uid']);
}
function get_name(&$data, $uid)
{
foreach ($data as &$item) {
if ($item['uid'] == $uid) {
$name = $item['name']
unset($item);
return $name;
}
}
}
再来拓展一下
$array3 = function() use($array2) {
$res = array();
foreach ($array2 as $item) {
$res[$item['uid']] = $item['name'];
}
return $res;
};
foreach ($array1 as &$item) {
$item['uid'] = $array3[$item['uid']];
}
$array2 = array_column($array2, 'name', 'uid');
foreach($array1 as &$arr) $arr['uid'] = $array2[$arr['uid']];
喷了,换个思路?
http://php.com/manual/en/function.array-merge-recursive.php
内容总结
以上是互联网集市为您收集整理的php合并多维数组问题全部内容,希望文章能够帮你解决php合并多维数组问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。