加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP,使用公共密钥合并数组

发布时间:2020-12-13 14:10:43 所属栏目:PHP教程 来源:网络整理
导读:我需要将两个数组合并成一个,同时保留所有的键并列出数组中的值,如下例所示: $array1 = array('car' = '3','bus' = '2');$array2 = array('dog' = '1','car' = '2','bird' = '9'); $merged = array( 'car' = array('3','2'),'bus' = array('2',null),'dog'
我需要将两个数组合并成一个,同时保留所有的键并列出数组中的值,如下例所示:
$array1 = array('car' => '3','bus' => '2');
$array2 = array('dog' => '1','car' => '2','bird' => '9');  

$merged = array(
    'car' => array('3','2'),'bus' => array('2',null),'dog' => array(null,'1'),'bird' => (null,'9')
);
function merge_common_keys(){
    $arr = func_get_args();
    $num = func_num_args();

    $keys = array();
    $i = 0;
    for ($i=0; $i<$num; ++$i){
        $keys = array_merge($keys,array_keys($arr[$i]));
    }
    $keys = array_unique($keys);

    $merged = array();

    foreach ($keys as $key){
        $merged[$key] = array();
        for($i=0; $i<$num; ++$i){
            $merged[$key][] = isset($arr[$i][$key]) ? $arr[$i][$key] : null;
        }
    }
    return $merged;
}

用法:

$merged = merge_common_keys($array1,$array2);

PS.它可以与两个以上的数组一起工作,只需传递所需的数量,作为下一个参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读