• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-24) 16次浏览 已收录 0个评论

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

<br />//注册信息<br />$array1 = array(<br />0=>array(<br />'day'=>'2014-3-7',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000001'),<br />1=>array('uid'=>'0000002'),<br />3=>array('uid'=>'0000003'),<br />4=>array('uid'=>'0000004'),<br />)<br />),<br />1=>array(<br />'day'=>'2014-3-8',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000005'),<br />1=>array('uid'=>'0000007'),<br />2=>array('uid'=>'0000006'),<br />)<br />),<br />2=>array(<br />'day'=>'2014-3-10',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000008'),<br />1=>array('uid'=>'0000010'),<br />2=>array('uid'=>'0000009'),<br />3=>array('uid'=>'0000012'),<br />4=>array('uid'=>'0000013'),<br />)<br />),<br />3=>array(<br />'day'=>'2014-3-11',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000015'),<br />1=>array('uid'=>'0000014'),<br />2=>array('uid'=>'0000025'),<br />3=>array('uid'=>'0000017'),<br />4=>array('uid'=>'0000018'),<br />)<br />),<br />);<br /><br />//登录日志<br />$array2 = array(<br />0=>array(<br />'day'=>'2014-3-8',//登录日期<br />'ge_data'=>array(<br />0=>array('uid'=>'0000001'),<br />1=>array('uid'=>'0000002'),<br />3=>array('uid'=>'0000003')<br />)<br />),<br />1=>array(<br />'day'=>'2014-3-9',//登录日期<br />'ge_data'=>array(<br />0=>array('uid'=>'0000002'),<br />1=>array('uid'=>'0000007'),<br />2=>array('uid'=>'0000006'),<br />)<br />),<br />2=>array(<br />'day'=>'2014-3-11',//登录日期<br />'ge_data'=>array(<br />0=>array('uid'=>'0000001'),<br />1=>array('uid'=>'0000007'),<br />2=>array('uid'=>'0000008'),<br />3=>array('uid'=>'0000012'),<br />4=>array('uid'=>'0000013'),<br />5=>array('uid'=>'0000003'),<br /><strong style="color:transparent">9来源gaodai#ma#com搞@代~码$网</strong>搞gaodaima代码6=>array('uid'=>'0000002')<br />)<br />)<br />);<br />

如何能得到以下数组:

各位帮帮忙!
——解决方案——————–
可以这样写

//注册信息<br />$array1 = array(<br />0=>array(<br />'day'=>'2014-3-7',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000001'),<br />1=>array('uid'=>'0000002'),<br />3=>array('uid'=>'0000003'),<br />4=>array('uid'=>'0000004'),<br />)<br />),<br />1=>array(<br />'day'=>'2014-3-8',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000005'),<br />1=>array('uid'=>'0000007'),<br />2=>array('uid'=>'0000006'),<br />)<br />),<br />2=>array(<br />'day'=>'2014-3-10',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000008'),<br />1=>array('uid'=>'0000010'),<br />2=>array('uid'=>'0000009'),<br />3=>array('uid'=>'0000012'),<br />4=>array('uid'=>'0000013'),<br />)<br />),<br />3=>array(<br />'day'=>'2014-3-11',//注册日期<br />'data'=>array(<br />0=>array('uid'=>'0000015'),<br />1=>array('uid'=>'0000014'),<br />2=>array('uid'=>'0000025'),<br />3=>array('uid'=>'0000017'),<br />4=>array('uid'=>'0000018'),<br />)<br />),<br />);<br /> <br />//登录日志<br />$array2 = array(<br />0=>array(<br />'day'=>'2014-3-8',//登录日期<br />'ge_data'=>array(<br />0=>array('uid'=>'0000001'),<br />1=>array('uid'=>'0000002'),<br />3=>array('uid'=>'0000003')<br />)<br />),<br />1=>array(<br />'day'=>'2014-3-9',//登录日期<br />'ge_data'=>array(<br />0=>array('uid'=>'0000002'),<br />1=>array('uid'=>'0000007'),<br />2=>array('uid'=>'0000006'),<br />)<br />),<br />2=>array(<br />'day'=>'2014-3-11',//登录日期<br />'ge_data'=>array(<br />0=>array('uid'=>'0000001'),<br />1=>array('uid'=>'0000007'),<br />2=>array('uid'=>'0000008'),<br />3=>array('uid'=>'0000012'),<br />4=>array('uid'=>'0000013'),<br />5=>array('uid'=>'0000003'),<br />6=>array('uid'=>'0000002')<br />)<br />)<br />);<br /><br />$res = array();<br /><br />//读取每天的注册记录<br />foreach($array1 as $r) {<br />  $day = $r['day'];<br />  $res[$day] = array('day' => $day, 'count' => count($r['data']));<br />  $d = date('z', strtotime($day));<br /><br />  //对于当日注册每个用户<br />  foreach($r['data'] as $us) {<br />    foreach($array2 as $t) {<br />      $rd = date('z', strtotime($t['day']));<br />      //检查他在哪天登录了<br />      foreach($t['ge_data'] as $u) {<br />        if($us['uid'] == $u['uid']) $res[$day]['day_'.($rd-$d)][] = $us['uid']; //保存登录的uid以便于检查<br />      }<br />    }<br />  }<br />}<br />print_r($res);
Array
(
[2014-3-7] => Array
(
[day] => 2014-3-7
[count] => 4
[day_1] => Array
(
[0] => 0000001
[1] => 0000002


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 多维数组有关问题,有点难度
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址