Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中合并两个关联数组的问题_Php_Arrays_Array Merge - Fatal编程技术网

php中合并两个关联数组的问题

php中合并两个关联数组的问题,php,arrays,array-merge,Php,Arrays,Array Merge,我在PHP中有两个数组。我在合并这两个数组时遇到了困难 $scheduleArray0=Array ([04/04/2016] => Array ( [TypeName_1] => Weekly [TypeID_1] => 3) [04/05/2016] => Array ( [TypeName_1]

我在PHP中有两个数组。我在合并这两个数组时遇到了困难

$scheduleArray0=Array ([04/04/2016] => 
                    Array ( [TypeName_1] => Weekly
                          [TypeID_1] => 3)
                   [04/05/2016] =>
                    Array ( [TypeName_1] => Weekly 
                          [TypeID_1] => 3  ) 
                   )


 $scheduleArray1 = Array ( [04/04/2016] => 
                   Array ( [TypeName_2] => Biweekly 
                           [TypeID_2] => 7 ) 
                     [04/05/2016] =>
                  Array ( [TypeName_2] => Biweekly 
                          [TypeID_2] => 7 ) ) .
我需要它像这样合并。即我的所需输出

$final =    Array ( [04/04/2016] => 
                  Array ( [TypeName_1] => Weekly [TypeID_1] => 3 
                          [TypeName_2] => Biweekly [TypeID_2] => 7 )
               [04/05/2016] => 
                  Array ( [TypeName_1] => Weekly [TypeID_1] => 3
                          [TypeName_2] => Biweekly [TypeID_2] => 7 ) )
Array ([04/04/2016] => 
        Array ( [0] => Array ( [TypeName_1] => Weekly [TypeID_1] => 3 )
                [1] => Array ( [TypeName_2] => Biweekly [TypeID_2] => 7  )) 
       [04/05/2016] => 
        Array ( [0] => Array ( [TypeName_1] => Weekly [TypeID_1] => 3  ) 
                [1] => Array ( [TypeName_2] => Biweekly [TypeID_2] => 7 ) )
对于合并,我使用了以下代码

$final = merge_common_keys($scheduleArray0,$scheduleArray1);
它给了我以下多维数组。这就是我得到的

$final =    Array ( [04/04/2016] => 
                  Array ( [TypeName_1] => Weekly [TypeID_1] => 3 
                          [TypeName_2] => Biweekly [TypeID_2] => 7 )
               [04/05/2016] => 
                  Array ( [TypeName_1] => Weekly [TypeID_1] => 3
                          [TypeName_2] => Biweekly [TypeID_2] => 7 ) )
Array ([04/04/2016] => 
        Array ( [0] => Array ( [TypeName_1] => Weekly [TypeID_1] => 3 )
                [1] => Array ( [TypeName_2] => Biweekly [TypeID_2] => 7  )) 
       [04/05/2016] => 
        Array ( [0] => Array ( [TypeName_1] => Weekly [TypeID_1] => 3  ) 
                [1] => Array ( [TypeName_2] => Biweekly [TypeID_2] => 7 ) )
用户定义的函数-merge\u common\u键

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;
function merge\u common\u key(){
$arr=func_get_args();
$num=func_num_args();
$keys=array();
$i=0;

对于($i=0;$i这应该可以做到:

function merge_common_keys() {
    $arrays = func_get_args();
    $result = [];

    foreach ($arrays as $array) {
        foreach ($array as $key => $value) {
            if ( ! array_key_exists($key, $result)) {
                $result[$key] = [];
            }

            $result[$key] = array_merge($result[$key], $value);
        }
    }

    return $result;
}
结果是:


您能提供函数
合并公用密钥吗?@tommy我已经添加了合并公用密钥()防御