2016-07-29 81 views
0

我有两个这样的数组。在PHP中使用相同的键组合两个数组

$result_1 = array(
 
[0] => array ("id" => "a1", "label" => "A1"), 
 
[1] => array ("id" => "a2", "label" => "A2")); 
 

 
$result_2 = array(
 
[0] => array ("id" => "b1", "label" => "B1"));

如何结合$ result_1和$ result_2到一个新的阵列$结果所以它会给我这样的结果呢?

$result = array(
 
[0] => array ("id" => "a1", "label" => "A1"), 
 
[1] => array ("id" => "a2", "label" => "A2"), 
 
[2] => array ("id" => "b1", "label" => "B1"));

如果我使用$result = array_merge($result_1,$result_2),它将返回只有1个指标。如果我使用$result = array($result_1,$result_2),它将只返回2个索引。我希望它返回所有索引。请帮助我,谢谢。

+2

使用'$结果= $ result_1 + $ result_2' – jitendrapurohit

+0

你尝试array_values()?这将重置您的索引 –

+0

@jitendrapurohit没有工作。它只返回1个索引。 –

回答

1

使用array_walk,因为您的result_2变量与array_push结合使用了数组。它的工作,但请记住,它改变第一阵列http://php.net/manual/en/function.array-push.php

$result_1 = array(
    0 => array ("id" => "a1", "label" => "A1"), 
    1 => array ("id" => "a2", "label" => "A2") 
); 

$result_2 = array(
    0 => array ("id" => "b1", "label" => "B1") 
); 

array_walk($result_2, function($item) use (&$result_1) { 

    array_push($result_1, $result_2); 
}); 
print_r($result_1); 

Array ( 
    [0] => Array ([id] => a1 [label] => A1) 
    [1] => Array ([id] => a2 [label] => A2) 
    [2] => Array ([id] => b1 [label] => B1) 
) 
相关问题