PHP multidimensional array problem, a bit difficult!
Such two arrays:
Registration information
$array 1 = Array (
0=>array (
' Day ' = ' 2014-3-7 ',//Registration date
' Data ' =>array (
0=>array (' uid ' = ' 0000001 '),
1=>array (' uid ' = ' 0000002 '),
3=>array (' uid ' = ' 0000003 '),
4=>array (' uid ' = ' 0000004 '),
)
),
1=>array (
' Day ' = ' 2014-3-8 ',//Registration date
' Data ' =>array (
0=>array (' uid ' = ' 0000005 '),
1=>array (' uid ' = ' 0000007 '),
2=>array (' uid ' = ' 0000006 '),
)
),
2=>array (
' Day ' = ' 2014-3-10 ',//Registration date
' 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 ',//Registration date
' Data ' =>array (
0=>array (' uid ' = ' 0000015 '),
1=>array (' uid ' = ' 0000014 '),
2=>array (' uid ' = ' 0000025 '),
3=>array (' uid ' = ' 0000017 '),
4=>array (' uid ' = ' 0000018 '),
)
),
);
Log in Log
$array 2 = Array (
0=>array (
' Day ' = ' 2014-3-8 ',//Login Date
' Ge_data ' =>array (
0=>array (' uid ' = ' 0000001 '),
1=>array (' uid ' = ' 0000002 '),
3=>array (' uid ' = ' 0000003 ')
)
),
1=>array (
' Day ' = ' 2014-3-9 ',//Login Date
' Ge_data ' =>array (
0=>array (' uid ' = ' 0000002 '),
1=>array (' uid ' = ' 0000007 '),
2=>array (' uid ' = ' 0000006 '),
)
),
2=>array (
' Day ' = ' 2014-3-11 ',//Login Date
' 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 ')
)
)
);
How can I get the following array:
Guys, help!
------Solution--------------------
Can write like this
Registration information
$array 1 = Array (
0=>array (
' Day ' = ' 2014-3-7 ',//Registration date
' Data ' =>array (
0=>array (' uid ' = ' 0000001 '),
1=>array (' uid ' = ' 0000002 '),
3=>array (' uid ' = ' 0000003 '),
4=>array (' uid ' = ' 0000004 '),
)
),
1=>array (
' Day ' = ' 2014-3-8 ',//Registration date
' Data ' =>array (
0=>array (' uid ' = ' 0000005 '),
1=>array (' uid ' = ' 0000007 '),
2=>array (' uid ' = ' 0000006 '),
)
),
2=>array (
' Day ' = ' 2014-3-10 ',//Registration date
' 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 ',//Registration date
' Data ' =>array (
0=>array (' uid ' = ' 0000015 '),
1=>array (' uid ' = ' 0000014 '),
2=>array (' uid ' = ' 0000025 '),
3=>array (' uid ' = ' 0000017 '),
4=>array (' uid ' = ' 0000018 '),
)
),
);
Log in Log
$array 2 = Array (
0=>array (
' Day ' = ' 2014-3-8 ',//Login Date
' Ge_data ' =>array (
0=>array (' uid ' = ' 0000001 '),
1=>array (' uid ' = ' 0000002 '),
3=>array (' uid ' = ' 0000003 ')
)
),
1=>array (
' Day ' = ' 2014-3-9 ',//Login Date
' Ge_data ' =>array (
0=>array (' uid ' = ' 0000002 '),
1=>array (' uid ' = ' 0000007 '),
2=>array (' uid ' = ' 0000006 '),
)
),
2=>array (
' Day ' = ' 2014-3-11 ',//Login Date
' 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 ();
Read the Daily registration record
foreach ($array 1 as $r) {
$day = $r [' Day '];
$res [$day] = Array (' Day ' + = $day, ' count ' = + count ($r [' data ')];
$d = Date (' Z ', Strtotime ($day));
For each user registered on the same day
foreach ($r [' data '] as $US) {
foreach ($array 2 as $t) {
$rd = Date (' Z ', Strtotime ($t [' Day ')]);
Check the day he logged in.
foreach ($t [' Ge_data '] as $u) {
if ($US [' uid '] = = $u [' uid ']) $res [$day] [' Day_ '. $RD-$d) [] = $US [' uid ']; Save the login uid for easy checking
}
}
}
}
Print_r ($res);
array
(
[2014-3-7] + = Array
(
[Day] = 2014-3-7
[Count] = 4
[day_1] = = Array
(
[0] = 0000001 [1] = 0000002