2016-10-12 109 views
1
$array1 = [ "month" => "Jan", "count" => "20" , "month" => "feb", "count" => "2" ]; 
$array2 = [ "month" => "Jan", "count" => "50" , "month" => "feb", "count" => "27" ]; 

預期陣列後合併上述2個陣列陣列合併NO(+)UNION或合併()

$fianlarray = ["month" => "jan" , "count"=>"20" , "count" => "50" , 
       "month" => "feb" , "count" => "2", "count" => "27" ]; 

我試過array_merge和聯合,但沒有結果。在此先感謝

回答

0

你不能做這樣的事情:

$fianlarray = ["month" => "jan" , "count"=>"20" , "count" => "50" , 
       "month" => "feb" , "count" => "2", "count" => "27" ]; 

這裏,你確定多次鍵「月」,這是被禁止的「計數」 ......

2

我認爲有問題在你如何存儲數據。您不能在同一級別的數組內使用相同的密鑰兩次,這會導致覆蓋舊數據。

$ array1 = [「month」=>「Jan」,「count」=>「20」,「month」=>「feb」,「count」=>「2」]; $ array2 = [「month」=>「Jan」,「count」=>「50」,「month」=>「feb」,「count」=>「27」];

在你的代碼中,你將'month'存儲爲'jan',然後'month'存儲爲'feb',這將覆蓋'month'=>'jan'的前一個分配。

請重新組織你如何在數組內存儲信息。

請參閱question。很好地解釋了amber

如果需要更多幫助,我很樂意提供幫助。

謝謝,快樂編碼。

1

不幸的是,我們不能做,你在你的問題中提到,你不能再次使用相同的關聯鍵,在這種情況下重複關聯鍵替代的價值

$fianlarray = ["month" => "jan" , "count"=>"20" , "count" => "50" , 
       "month" => "feb" , "count" => "2", "count" => "27" ]; 

我建議你做的好結構如下圖所示

$fianlarray = [["month" => "jan" , "count"=>["20", "50"]], 
       ["month" => "feb" , "count" => ["2","27"]]]; 

OR

$fianlarray = ["jan"=>["20", "50"],"feb"=>["2","27"]]; 
1

@Aravindh Gopi你不能得到像你想要的數組,因爲數組可以不會有相同的名稱索引超過一個,如果你會這樣做,所以數組 將覆蓋值,在這種情況下,$ array1的值將超過 編寫$ array2的值,你將得到你最終的數組,如:

$ fianlarray = [「month」=>「feb」, 「count」=>「27」];

但是,如果你希望你的解決方案,使您可以用函數array_merge_recursive(),這個功能會給你,你的解決方案,但你會得到在0和​​1索引嘗試一個新的數組相同的索引值做下面之一:

<?php 
    $array1 = [ "month" => "Jan", "count" => "20"]; 
    $array2 = ["month" => "feb", "count" => "27" ]; 
    $fianlarray=array_merge_recursive($array1,$array2); 
    print_r($fianlarray); 
?> 

輸出將是:

陣列([月] =>數組([0] =>月[1] => 2月)[計數] =>數組( [0] => 20 [1] => 27))

所以嘗試,如果你需要的是這個(Y)

+0

葉氏我試過array_merge_recursive(),但是這不是我想要的伴侶。 :) –