如何合并两个数组,保持数字键不变

时间:2014-08-25 11:43:52

标签: php arrays

我正在创建两个数字键可能匹配的数组,但是当我使用数组合并或+运算符时,它会与自动数字键合并。我想保留原始数字键。

foreach($qr1 as $b){
    $day=(int)substr($b->dob,8,2);                  
    $events_arr1[$day]=$b;                          
}

它返回一个类似

的数组
  

数组([4] => Arnab Roy [13] => Kaushik De [14] => Brett,测试   )

foreach($qr2 as $b){
    $day=(int)substr($b->dob,8,2);                  
    $events_arr2[$day]=$b;
}

它返回一个类似

的数组
  

数组([14] => shouts1,shouts2)

        $events_arr=$events_arr1+$events_arr2;
        echo "<pre>";
        print_r($events_arr);
        exit;

它返回一个类似

的数组
     Array
     (
         [4] =>  Arnab Roy

         [13] =>  Kaushik De

         [14] =>  Brett , Test

    )

但最后一个数组索引没有合并..不知道为什么

2 个答案:

答案 0 :(得分:0)

您不能在数组中多次使用相同的密钥,这就是为什么它无法合并第二个数组:密钥&#34; 14&#34;已存在于第一个数组中。

答案 1 :(得分:0)

永远不可能创建具有相同键的数组。如果数组键相同,则无法合并两个数组。我们可以看到,在两个数组中都有相同的键'14'。尝试使用您的功能而不是array_merge或concat数组。我的建议是你可以将两个数组转换成一个字符串并连接两个字符串。