2016-07-29 120 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) 
) 
相關問題