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

Erwartete Array nach den oben genannten 2-ArraysArray fusionieren NEIN (+) UNION oder fusionieren()

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

i versucht haben, array_merge und Union aber kein Ergebnis verschmelzen. Vielen Dank im Voraus

Antwort

0

Sie nicht so etwas tun kann:

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

hier definieren Sie mehrmals die Tasten „Monat“, „count“, die verboten ist ...

2

ich denke, es ist Problem wie Sie Daten speichern. Sie können denselben Schlüssel nicht zweimal im Array auf derselben Ebene verwenden. Dies führt dazu, dass alte Daten überschrieben werden.

$ array1 = ["Monat" => "Jan", "count" => "20", "Monat" => "feb", "count" => "2"]; $ array2 = ["Monat" => "Jan", "count" => "50", "Monat" => "feb", "count" => "27"];

Hier in Ihrem Code speichern Sie 'Monat' als 'Jan' dann 'Monat' als 'Feb', dies überschreibt die vorherige Zuordnung von 'Monat' => 'Jan'.

Bitte restrukturieren Sie, wie Sie Informationen im Array speichern.

Siehe hierzu question. Schön erklärt von amber.

Wenn mehr Hilfe benötigt wird, bin ich glücklich zu helfen.

Danke, Happy Coding.

1

Leider können wir nicht tun, wie Sie in Ihrer Frage erwähnt, können Sie nicht denselben assoziativen Schlüssel verwenden wieder, in diesem Fall wiederholt assoziativen Schlüssel überschreibt Wert

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

Ich schlage vor, Sie wie unten gute Struktur zu tun

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

OR

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

@Aravindh Gopi Sie können Array nicht wie gewünscht erhalten, weil Array nicht denselben Namen Index mehr als eins haben kann, wenn Sie dies tun, so Array überschreibt die Werte und in diesem Fall $ array1 Werte werden über geschrieben von $ array2 value und Sie erhalten Ihr letztes Array wie:

$ fianlarray = ["Monat" => "Feb", "count" => "27"];

Aber wenn Sie möchten, dass Ihre Lösung, so dass Sie es mit der Funktion array_merge_recursive tun können(), wird diese Funktion geben Sie Ihre Lösung, aber Sie werden die gleichen Indexwerte in einem neuen Array mit 0 und 1 Index Versuch erhalten unten ein:

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

OutPut wird:

Array ([Monat] => Array ([0] => Jan [1] => FEBRUAR) [count] => Array ( [0] => 20 [1] => 27))

Also versuchen Sie, wenn Ihre Notwendigkeit, dies (y) ist

+0

Yeap Ich habe versucht array_merge_recursive(), aber das ist nicht das, was ich paaren wollen. :) –