There are two of arrays:
===========a:array ([0] = = Array ([vtime] = 2014-01-18 00:22:43 [qr] = 0a5500f 5D5E5847209D83A7FE637A34F) [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] = 218e412b1d73f771e8b01b9d1f678f 5b) [4] = = Array ([Date] = 2014-01-17 00:00:00 [MD5] = 218e412b1d73f77 1E8B01B9D1F678F5B))
Compares the date in the A array vtime and B arrays, and if the same data is merged (Vtime, QR, Date, Md5) into the C-array,
If they are not the same, the A array is placed separately into the C array.
(a array is compared to each of the B arrays, and b arrays are only reserved to the C array if they correspond to the A array)
Ask the master to help me think of a way.
Reply content:
There are two of arrays:
===========a:array ([0] = = Array ([vtime] = 2014-01-18 00:22:43 [qr] = 0a5500f 5D5E5847209D83A7FE637A34F) [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] = 218e412b1d73f771e8b01b9d1f678f 5b) [4] = = Array ([Date] = 2014-01-17 00:00:00 [MD5] = 218e412b1d73f77 1E8B01B9D1F678F5B))
Compares the date in the A array vtime and B arrays, and if the same data is merged (Vtime, QR, Date, Md5) into the C-array,
If they are not the same, the A array is placed separately into the C array.
(a array is compared to each of the B arrays, and b arrays are only reserved to the C array if they correspond to the A array)
Ask the master to help me think of a way.
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++; } });