首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php如何实现两个数组合并

2013-07-01 
php怎么实现两个数组合并数组一:$a_array Array([0] Array([plan_id] 1[ad_img_url] http://ww

php怎么实现两个数组合并
数组一:
$a_array = Array
(
    [0] => Array
        (
            [plan_id] => 1
            [ad_img_url] => http://www.adsload.com/assets/ad1.jpg
        )

    [1] => Array
        (
            [plan_id] => 2
            [ad_img_url] => http://www.adsload.com/assets/ad2.jpg
        )

    [2] => Array
        (
            [plan_id] => 3
            [ad_img_url] => http://www.adsload.com/assets/ad3.jpg
        )

)
数组二:
$b_array = Array
(
    [0] => Array
        (
            [plan_id] => 1
            [ad_url] => http://www.baidu.com/
        )

    [1] => Array
        (
            [plan_id] => 2
            [ad_url] => http://www.baidu.com/
        )

    [2] => Array
        (
            [plan_id] => 3
            [ad_url] => http://www.baidu.com/
        )

)
合并后:
$ressult_array = Array
(
    [0] => Array
        (
            [plan_id] => 1
            [ad_img_url] => http://www.adsload.com/assets/ad1.jpg
    [ad_url] => http://www.baidu.com/
        )

    [1] => Array
        (
            [plan_id] => 2
            [ad_img_url] => http://www.adsload.com/assets/ad2.jpg
    [ad_url] => http://www.baidu.com/
        )

    [2] => Array
        (
            [plan_id] => 3
            [ad_img_url] => http://www.adsload.com/assets/ad3.jpg
    [ad_url] => http://www.baidu.com/


        )

) PHP 数组合并 array
[解决办法]

foreach($b_array as $v){
    $ar[$v['plan_id']]=$v['ad_url'];
}
foreach($a_array as &$v){
     if($ar[$v['plan_id']]) $v['ad_url']=$ar[$v['plan_id']];
}
print_r($a_array);

[解决办法]
$a_array = array (
  0 => array (
    'plan_id' => '1',
    'ad_img_url' => 'http://www.adsload.com/assets/ad1.jpg',
  ),
  1 => array (
    'plan_id' => '2',
    'ad_img_url' => 'http://www.adsload.com/assets/ad2.jpg',
  ),
  2 => array (
    'plan_id' => '3',
    'ad_img_url' => 'http://www.adsload.com/assets/ad3.jpg',
  ),
);

$b_array = array (
  0 =>   array (
    'plan_id' => '1',
    'ad_url' => 'http://www.baidu.com/',
  ),
  1 => array (
    'plan_id' => '2',
    'ad_url' => 'http://www.baidu.com/',
  ),
  2 => array (
    'plan_id' => '3',
    'ad_url' => 'http://www.baidu.com/',
  ),
);
foreach($a_array as $item) $res[$item['plan_id']] = $item;
foreach($b_array as $item) {
  if(isset($res[$item['plan_id']])) $res[$item['plan_id']] = array_merge($res[$item['plan_id']], $item);
  else $res[$item['plan_id']] = $item;
}
print_r(array_values($res));
Array
(
    [0] => Array
        (
            [plan_id] => 1
            [ad_img_url] => http://www.adsload.com/assets/ad1.jpg
            [ad_url] => http://www.baidu.com/
        )

    [1] => Array
        (
            [plan_id] => 2
            [ad_img_url] => http://www.adsload.com/assets/ad2.jpg
            [ad_url] => http://www.baidu.com/
        )



    [2] => Array
        (
            [plan_id] => 3
            [ad_img_url] => http://www.adsload.com/assets/ad3.jpg
            [ad_url] => http://www.baidu.com/
        )

)

热点排行