合并2阵列,并结合数字键的结果 [英] Merge 2 arrays and combine results of numerical keys

查看:109
本文介绍了合并2阵列,并结合数字键的结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2个阵列,其中我想每个数字键融合在一起/组。
例如:

I have 2 arrays in which I wish to merge/group together by each numerical key. eg

Array1
(
    [2009] => 131
    [2008] => 940
    [2007] => 176
    [2006] => 1
)
Array2
(
    [2008] => 9
    [2007] => 3
)

我想输出是:

Array (
    [2009] => 131
    [2008] => Array (
                     [0]=>940
                     [1]=>9
                    )
    [2007] => Array (
                     [0]=>176
                     [1]=>3
                    )
    [2006] => 1
)

在地球上我如何实现这一目标?我曾尝试array_merge,但我失去了我的钥匙,他们没有得到分组。

How on earth do I achieve this? I have tried array_merge but I lose my keys and they don't get grouped.

推荐答案

我终于找到这个功能,帮助我。谢谢大家对您的输入。

I eventually found this function that helped me. Thank you everyone for your input.

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;
}

这篇关于合并2阵列,并结合数字键的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆