合并3个键=>值数组

i have these 3 arrays

Global array

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

Local array

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

Country array

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

and when i merge all 3 i get this

Result array

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

However this is what i want

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

For some reason it is missing out the values 4 and 13 and i can't work out why.

Here is the code for combining the arrays

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

Use array_merge, it concatenates arrays with numeric keys.

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

+ replaces elements with the same key.

Try

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

What you're doing is called the 'union' operator in PHP. It merges the arrays based in their keys (see: http://us3.php.net/manual/en/language.operators.array.php for more info).

And because you have numeric keys (for example three times the key 0) they will be overwritten.