您好,欢迎访问一九零五行业门户网

PHP数组的合并处理

有两个数组:
===========a:array( [0] => array ( [vtime] => 2014-01-18 00:22:43 [qr] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => array ( [vtime] => 2014-01-17 00:00:00 [qr] => 218e412b1d73f771e8b01b9d1f678f5b ))===========b:array( [0] => array ( [date] => 2014-01-18 00:22:43 [md5] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => array ( [date] => 2014-01-18 00:22:43 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [2] => array ( [date] => 2014-01-17 00:00:00 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [3] => array ( [date] => 2014-01-17 00:00:00 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [4] => array ( [date] => 2014-01-17 00:00:00 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ))

比较a数组vtime和b数组中的date是否相同,如果相同将数据合并(vtime, qr, date, md5)放到c数组,
如果不相同,则单独把a数组放到c数组。
(a数组要和b数组的每一个都对比,b数组只有和a数组对应的才会保留到c数组)
求高手帮我想个办法。
回复内容: 有两个数组:
===========a:array( [0] => array ( [vtime] => 2014-01-18 00:22:43 [qr] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => array ( [vtime] => 2014-01-17 00:00:00 [qr] => 218e412b1d73f771e8b01b9d1f678f5b ))===========b:array( [0] => array ( [date] => 2014-01-18 00:22:43 [md5] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => array ( [date] => 2014-01-18 00:22:43 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [2] => array ( [date] => 2014-01-17 00:00:00 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [3] => array ( [date] => 2014-01-17 00:00:00 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [4] => array ( [date] => 2014-01-17 00:00:00 [md5] => 218e412b1d73f771e8b01b9d1f678f5b ))

比较a数组vtime和b数组中的date是否相同,如果相同将数据合并(vtime, qr, date, md5)放到c数组,
如果不相同,则单独把a数组放到c数组。
(a数组要和b数组的每一个都对比,b数组只有和a数组对应的才会保留到c数组)
求高手帮我想个办法。
1, 'qr' => 2, ), array( 'vtime' => 3, 'qr' => 4, ),);$b = array( array( 'date' => 1, 'md5' => 2, ), array( 'date' => 5, 'md5' => 6, ),);$d = array();foreach($b as $b) { // 没有考虑date重复的问题 $d[$b['date']] = $b;}$c = $a;foreach($c as &$c) { if(isset($d[$c['vtime']])) { $c = array_merge($c, $d[$c['vtime']]); }}unset($c);var_dump($c);
$a = array(); //初始数据$a$b = array(); //初始数据$b$d = array();foreach($b as $b) { $d['date'][] = $b['date']; $d['md5'][] = $b['md5'];}$d = array_combine($d['date'], $d['md5']);foreach($a as &$a) array_key_exists($a['vtime'], $d) && $a['md5'] = $d[$a['vtime']];$c = $a;
$c = [];$i = 0;//遍历$aarray_walk( $a, function ($v, $k) use ($b, &$c, &$i) { //遍历$b foreach ($b as $bb) { //不同的部分 $c[$i] = $v; //如果相同 $v['vtime'] == $bb['date'] && list( $c[$i]['date'], $c[$i]['md5'] ) = [ $bb['date'], $bb['md5'] ]; $i++; } });
其它类似信息

推荐信息