Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP 多维数组有关问题,有点难度

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

WBOY
WBOYasal
2016-06-13 11:51:53988semak imbas

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 />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<br>(<br>    [2014-3-7] => Array<br>        (<br>            [day] => 2014-3-7<br>            [count] => 4<br>            [day_1] => Array<br>                (<br>                    [0] => 0000001<br>                    [1] => 0000002<div class="clear">
                 
              
              
        
            </div>
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php错误处理机制如何解决Artikel seterusnya:php中文api(带例证)