合并3个key =>值数组

时间:2014-02-13 23:25:07

标签: php arrays

我有这3个阵列

全局数组

array(5) { [0]=> array(1) { ["shout_id"]=> string(1) "4" } 
           [1]=> array(1) { ["shout_id"]=> string(1) "6" } 
           [2]=> array(1) { ["shout_id"]=> string(2) "16" } 
           [3]=> array(1) { ["shout_id"]=> string(2) "17" } 
           [4]=> array(1) { ["shout_id"]=> string(2) "20" } } 

本地数组

array(1) { [0]=> array(1) { ["shout_id"]=> string(2) "13" } } 

国家/地区数组

array(1) { [0]=> array(1) { ["shout_id"]=> string(2) "19" } } 

当我合并所有3我得到这个

结果数组

array(5) { [0]=> array(1) { ["shout_id"]=> string(2) "19" } 
           [1]=> array(1) { ["shout_id"]=> string(1) "6" } 
           [2]=> array(1) { ["shout_id"]=> string(2) "16" } 
           [3]=> array(1) { ["shout_id"]=> string(2) "17" } 
           [4]=> array(1) { ["shout_id"]=> string(2) "20" } }

然而,这就是我想要的

array(7) { [0]=> array(1) { ["shout_id"]=> string(2) "19" } 
           [1]=> array(1) { ["shout_id"]=> string(1) "6" } 
           [2]=> array(1) { ["shout_id"]=> string(2) "16" } 
           [3]=> array(1) { ["shout_id"]=> string(2) "17" } 
           [4]=> array(1) { ["shout_id"]=> string(2) "20" }
           [5]=> array(1) { ["shout_id"]=> string(2) "4" }
           [6]=> array(1) { ["shout_id"]=> string(2) "13" } }

由于某种原因,它错过了值4和13,我无法理解为什么。

以下是组合数组的代码

$result_array = $country_array + $global_array + $local_array;

2 个答案:

答案 0 :(得分:1)

使用array_merge,它使用数字键连接数组。

$result_array = array_merge($country_array, $global_array, $local_array);

+用相同的键替换元素。

答案 1 :(得分:0)

尝试

$result_array = array_merge($country_array, $global_array, $local_array);

你正在做的是在PHP中称为'union'运算符。 它基于键来合并数组(有关详细信息,请参阅:http://us3.php.net/manual/en/language.operators.array.php)。

因为你有数字键(例如键0的三倍),它们将被覆盖。