如何在php中使用union 2多维数组?
我有两个多维数组。我需要这些数组的并集。 也许有一个PHP数组函数可以做到这一点。我用如何在php中使用union 2多维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有两个多维数组。我需要这些数组的并集。 也许有一个PHP数组函数可以做到这一点。我用array\u replace(),array\u merge()尝试了不同的方法,但我想不出来。数组的长度不是固定的。这两个阵列是: $a = array( array( 'division'=> 'Dhaka', 'A'=> 0, 'B'=> 0, 'C'=> 0, 'D'=> 0 ), array( 'divisio
array\u replace()
,array\u merge()
尝试了不同的方法,但我想不出来。数组的长度不是固定的。这两个阵列是:
$a = array(
array(
'division'=> 'Dhaka',
'A'=> 0,
'B'=> 0,
'C'=> 0,
'D'=> 0
),
array(
'division'=> 'Chittagong',
'A'=> 0,
'B'=> 0,
'C'=> 0,
'D'=> 0
),
array(
'division'=> 'Rajshahi',
'A'=> 0,
'B'=> 0,
'C'=> 0,
'D'=> 0
),
array(
'division'=> 'Mymensingh',
'A'=> 0,
'B'=> 0,
'C'=> 0,
'D'=> 0
)
);
$b = array(
array("division"=> "Dhaka", "A"=> 5, "B"=> 8),
array("division"=> "Rajshahi", "A"=> 10, "C"=> 2)
);
结果应该是:
$a = array(
array(
'division'=> 'Dhaka',
'A'=> 5, //after union
'B'=> 8, //after union
'C'=> 0,
'D'=> 0
),
array(
'division'=> 'Chittagong',
'A'=> 0,
'B'=> 0,
'C'=> 0,
'D'=> 0
),
array(
'division'=> 'Rajshahi',
'A'=> 10, //after union
'B'=> 0, //after union
'C'=> 2,
'D'=> 0
),
array(
'division'=> 'Mymensingh',
'A'=> 0,
'B'=> 0,
'C'=> 0,
'D'=> 0
)
);
因为它是多维数组,所以需要递归替换;但您还需要相同的字符串索引。如果
分区
是唯一的,则使用该分区:
$a = array_replace_recursive(array_column($a, null, 'division'),
array_column($b, null, 'division'));
如果要返回整数索引,请执行以下操作:
$a = array_values(array_replace_recursive(array_column($a, null, 'division'),
array_column($b, null, 'division')));
如果
$a
中的子数组有值怎么办?$b
中的值是否始终优先?或者我们是否在$a
中保留任何非零值?您是否尝试过$a=array\u replace\u recursive($a,$b)代码>?