首页 > 后端开发 > php教程 > php 合并多维数组问题

php 合并多维数组问题

WBOY
发布: 2016-06-06 20:38:51
原创
1053 人浏览过

有2个数组

<code>$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"]=>'李四'
]
</code>
登录后复制
登录后复制

我在循环输出array1的时候。如何把uid替换成array2中的name?

<code>foreach($array1 as $item) {
  $item['status']= $item['status']==1?'是':'否';
  $item['uid']= xxx;//这里如何替换成name?
  $newarr[] = $item;
}
</code>
登录后复制
登录后复制

回复内容:

有2个数组

<code>$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"]=>'李四'
]
</code>
登录后复制
登录后复制

我在循环输出array1的时候。如何把uid替换成array2中的name?

<code>foreach($array1 as $item) {
  $item['status']= $item['status']==1?'是':'否';
  $item['uid']= xxx;//这里如何替换成name?
  $newarr[] = $item;
}
</code>
登录后复制
登录后复制

2个数组的匹配数据的位置是一一对应的么? 如果这样, 比较简单:

<code>$count = count($array1);
for ($i = 0; $i </code>
登录后复制

这样就可以了, 这种情况用foreach反而不方便.

假如数据不匹配, 需要在array2中搜索的话, 给个简单的例子:

<code>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;
        }
    }
}
</code>
登录后复制

再来拓展一下

<code>$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']];
}
</code>
登录后复制

<code>$array2 = array_column($array2, 'name', 'uid');
foreach($array1 as &$arr) $arr['uid'] = $array2[$arr['uid']];
</code>
登录后复制

喷了,换个思路?
http://php.net/manual/en/function.array-merge-recursive.php

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板