PHP头条
热点:

PHP多维数组有关问题,有点难度


PHP 多维数组问题,有点难度!
这样两个数组:

//注册信息
$array1 = array(
0=>array(
'day'=>'2014-3-7',//注册日期
'data'=>array(
0=>array('uid'=>'0000001'),
1=>array('uid'=>'0000002'),
3=>array('uid'=>'0000003'),
4=>array('uid'=>'0000004'),
)
),
1=>array(
'day'=>'2014-3-8',//注册日期
'data'=>array(
0=>array('uid'=>'0000005'),
1=>array('uid'=>'0000007'),
2=>array('uid'=>'0000006'),
)
),
2=>array(
'day'=>'2014-3-10',//注册日期
'data'=>array(
0=>array('uid'=>'0000008'),
1=>array('uid'=>'0000010'),
2=>array('uid'=>'0000009'),
3=>array('uid'=>'0000012'),
4=>array('uid'=>'0000013'),
)
),
3=>array(
'day'=>'2014-3-11',//注册日期
'data'=>array(
0=>array('uid'=>'0000015'),
1=>array('uid'=>'0000014'),
2=>array('uid'=>'0000025'),
3=>array('uid'=>'0000017'),
4=>array('uid'=>'0000018'),
)
),
);

//登录日志
$array2 = array(
0=>array(
'day'=>'2014-3-8',//登录日期
'ge_data'=>array(
0=>array('uid'=>'0000001'),
1=>array('uid'=>'0000002'),
3=>array('uid'=>'0000003')
)
),
1=>array(
'day'=>'2014-3-9',//登录日期
'ge_data'=>array(
0=>array('uid'=>'0000002'),
1=>array('uid'=>'0000007'),
2=>array('uid'=>'0000006'),
)
),
2=>array(
'day'=>'2014-3-11',//登录日期
'ge_data'=>array(
0=>array('uid'=>'0000001'),
1=>array('uid'=>'0000007'),
2=>array('uid'=>'0000008'),
3=>array('uid'=>'0000012'),
4=>array('uid'=>'0000013'),
5=>array('uid'=>'0000003'),
6=>array('uid'=>'0000002')
)
)
);


如何能得到以下数组:


各位帮帮忙!
------解决方案--------------------
可以这样写
//注册信息
$array1 = array(
0=>array(
'day'=>'2014-3-7',//注册日期
'data'=>array(
0=>array('uid'=>'0000001'),
1=>array('uid'=>'0000002'),
3=>array('uid'=>'0000003'),
4=>array('uid'=>'0000004'),
)
),
1=>array(
'day'=>'2014-3-8',//注册日期
'data'=>array(
0=>array('uid'=>'0000005'),
1=>array('uid'=>'0000007'),
2=>array('uid'=>'0000006'),
)
),
2=>array(
'day'=>'2014-3-10',//注册日期
'data'=>array(
0=>array('uid'=>'0000008'),
1=>array('uid'=>'0000010'),
2=>array('uid'=>'0000009'),
3=>array('uid'=>'0000012'),
4=>array('uid'=>'0000013'),
)
),
3=>array(
'day'=>'2014-3-11',//注册日期
'data'=>array(
0=>array('uid'=>'0000015'),
1=>array('uid'=>'0000014'),
2=>array('uid'=>'0000025'),
3=>array('uid'=>'0000017'),
4=>array('uid'=>'0000018'),
)
),
);
 
//登录日志
$array2 = array(
0=>array(
'day'=>'2014-3-8',//登录日期
'ge_data'=>array(
0=>array('uid'=>'0000001'),
1=>array('uid'=>'0000002'),
3=>array('uid'=>'0000003')
)
),
1=>array(
'day'=>'2014-3-9',//登录日期
'ge_data'=>array(
0=>array('uid'=>'0000002'),
1=>array('uid'=>'0000007'),
2=>array('uid'=>'0000006'),
)
),
2=>array(
'day'=>'2014-3-11',//登录日期
'ge_data'=>array(
0=>array('uid'=>'0000001'),
1=>array('uid'=>'0000007'),
2=>array('uid'=>'0000008'),
3=>array('uid'=>'0000012'),
4=>array('uid'=>'0000013'),
5=>array('uid'=>'0000003'),
6=>array('uid'=>'0000002')
)
)
);

$res = array();

//读取每天的注册记录
foreach($array1 as $r) {
  $day = $r['day'];
  $res[$day] = array('day' => $day, 'count' => count($r['data']));
  $d = date('z', strtotime($day));

  //对于当日注册每个用户
  foreach($r['data'] as $us) {
    foreach($array2 as $t) {
      $rd = date('z', strtotime($t['day']));
      //检查他在哪天登录了
      foreach($t['ge_data'] as $u) {
        if($us['uid'] == $u['uid']) $res[$day]['day_'.($rd-$d)][] = $us['uid']; //保存登录的uid以便于检查
      }
    }
  }
}
print_r($res);
Array
(
    [2014-3-7] => Array
        (
            [day] => 2014-3-7
            [count] => 4
            [day_1] => Array
                (
                    [0] => 0000001
                    [1] => 0000002

www.phpzy.comtrue/phprm/5620.htmlTechArticlePHP多维数组有关问题,有点难度 PHP 多维数组问题,有点难度! 这样两个数组: //注册信息 $array1=array( 0=>array( 'day'=>'2014-3-7',//注册日期 'data'=>array( 0=>array('uid'=>'0000001'), 1=>array('uid'=>'0...

相关文章

相关频道:

PHP之友评论

今天推荐