+ -
当前位置:首页 → 问答吧 → 数组合并问题

数组合并问题

时间:2011-09-22

来源:互联网

PHP code
$a = Array
(
    '0' => Array
        (
            'user_id' => '40',
            'user_name' => '山山',
            'workno' => '1004'
       
        ),
    '1' => Array
        (
            'user_id' => '47',
            'user_name' => '好好',
            'workno' => '1014'
       
        ),
     '2' => Array
    (
           'user_id' => '20',
           'user_name' => '战三',
           'workno' => '1014'
   
    )


   
);


$b=Array
(
    '0' => Array
        (
            'user_id' => '40',
            'newbuy' => '280'
       
        ),
    '1' => Array
        (
            'user_id' => '47',
            'newbuy' => '56'
        )
 
   
);

我想实现的效果是:



$c = Array
(
  '0' => Array
  (
  'user_id' => '40',
  'user_name' => '山山',
  'workno' => '1004'
  'newbuy' => '280'

  ),
  '1' => Array
  (
  'user_id' => '47',
  'user_name' => '好好',
  'workno' => '1014'
  'newbuy' => '56'

  ),
'2' => Array
(
'user_id' => '20',
'user_name' => '战三',
'workno' => '1014'
  'newbuy' => '0'

)


   
);

作者: session1983   发布时间: 2011-09-22

$a和$b是一一对应的么,还是有什么对应关系?
如果是一一对应的:

PHP code
<?php
  foreach($b as $k=>$v)
    foreach($v as $s=>$t)
    {
     if(isset($a[$k]))
       {
        if(!isset($a[$k][$s]))
          $a[$k][$s] = $t;

      }

    }

print_r($a);

作者: ohmygirl   发布时间: 2011-09-22

不是一一对应的啊。你注意看。

作者: session1983   发布时间: 2011-09-22

PHP code

 for($i=0;$i<count($a);$i++){
     if($b[$i]){
                 $ar[$i]= array_merge($a[$i],$b[$i]);
     }else {
               $ar[$i]=$a[$i];
               $ar[$i]['newbuy']='0';
     }   

 }
 print_r($ar);

作者: jordan102   发布时间: 2011-09-22

试一下这样做吧,我测试了,通过了
$aa=array();
foreach($a as $key=>$value){
  if (!isset($b[$key]))
  $aa[$key]=array_merge($a[$key]);
  else
  $aa[$key]=array_merge($a[$key],$b[$key]);
  
}
print_r($aa);

作者: liuqing124tangke   发布时间: 2011-09-22

相关阅读 更多