2016-10-12 76 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(),但是这不是我想要的伴侣。 :) –