规则:用数组1中的id匹配数组2中的uid
如果数组2中的uid和数组1中的id相同的话
那就让数组2中的信息显示在数组1中id相同的下面(独立的一个数组内)
数组1每个子数组下面都要显示4条数组2的信息
id和uid相同的优先显示
id和uid相同大于4条的话就只显示4条
小于4条时用其余的补全
求大神们解答
数组1
$arr1 = array(
'0'=>array('id'=>1,'times'=>'2014-02-25','counts'=>'19'),
'1'=>array('id'=>2,'times'=>'2014-02-26','counts'=>'17'),
'2'=>array('id'=>3,'times'=>'2014-02-27','counts'=>'6')
);数组2
$arr2 = array(
'0'=>array('uid'=>1,'times'=>'2014-02-25','counts'=>'19'),
'1'=>array('uid'=>1,'times'=>'2014-02-26','counts'=>'17'),
'2'=>array('uid'=>1,'times'=>'2014-02-27','counts'=>'16'),
'3'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'18'),
'4'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'15'),
'5'=>array('uid'=>4,'times'=>'2014-02-28','counts'=>'14'),
'6'=>array('uid'=>4,'times'=>'2014-02-28','counts'=>'13'),
'7'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'12'),
'8'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'11'),
'9'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'10')
最后生成一个这样的数组
Array
(
[0] => Array
(
[arr1] => Array
(
'0'=>array('id'=>1,'times'=>'2014-02-25','counts'=>'19'),
) [arr2] => Array
(
'0'=>array('uid'=>1,'times'=>'2014-02-25','counts'=>'19'),
'1'=>array('uid'=>1,'times'=>'2014-02-26','counts'=>'17'),
'2'=>array('uid'=>1,'times'=>'2014-02-27','counts'=>'16'),
) )
[1] => Array
(
[arr1] => Array
(
'0'=>array('id'=>2,'times'=>'2014-02-26','counts'=>'17'),
) [arr2] => Array
(
'0'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'15'),
'1'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'12'),
'2'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'11'), ) )
[2] => Array
(
[arr1] => Array
(
'0'=>array('id'=>3,'times'=>'2014-02-27','counts'=>'6')
) [arr2] => Array
(
'0'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'18'),
'1'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'10'),
'5'=>array('uid'=>4,'times'=>'2014-02-28','counts'=>'14'), ) )
)
如果数组2中的uid和数组1中的id相同的话
那就让数组2中的信息显示在数组1中id相同的下面(独立的一个数组内)
数组1每个子数组下面都要显示4条数组2的信息
id和uid相同的优先显示
id和uid相同大于4条的话就只显示4条
小于4条时用其余的补全
求大神们解答
数组1
$arr1 = array(
'0'=>array('id'=>1,'times'=>'2014-02-25','counts'=>'19'),
'1'=>array('id'=>2,'times'=>'2014-02-26','counts'=>'17'),
'2'=>array('id'=>3,'times'=>'2014-02-27','counts'=>'6')
);数组2
$arr2 = array(
'0'=>array('uid'=>1,'times'=>'2014-02-25','counts'=>'19'),
'1'=>array('uid'=>1,'times'=>'2014-02-26','counts'=>'17'),
'2'=>array('uid'=>1,'times'=>'2014-02-27','counts'=>'16'),
'3'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'18'),
'4'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'15'),
'5'=>array('uid'=>4,'times'=>'2014-02-28','counts'=>'14'),
'6'=>array('uid'=>4,'times'=>'2014-02-28','counts'=>'13'),
'7'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'12'),
'8'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'11'),
'9'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'10')
最后生成一个这样的数组
Array
(
[0] => Array
(
[arr1] => Array
(
'0'=>array('id'=>1,'times'=>'2014-02-25','counts'=>'19'),
) [arr2] => Array
(
'0'=>array('uid'=>1,'times'=>'2014-02-25','counts'=>'19'),
'1'=>array('uid'=>1,'times'=>'2014-02-26','counts'=>'17'),
'2'=>array('uid'=>1,'times'=>'2014-02-27','counts'=>'16'),
) )
[1] => Array
(
[arr1] => Array
(
'0'=>array('id'=>2,'times'=>'2014-02-26','counts'=>'17'),
) [arr2] => Array
(
'0'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'15'),
'1'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'12'),
'2'=>array('uid'=>1,'times'=>'2014-02-28','counts'=>'11'), ) )
[2] => Array
(
[arr1] => Array
(
'0'=>array('id'=>3,'times'=>'2014-02-27','counts'=>'6')
) [arr2] => Array
(
'0'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'18'),
'1'=>array('uid'=>3,'times'=>'2014-02-28','counts'=>'10'),
'5'=>array('uid'=>4,'times'=>'2014-02-28','counts'=>'14'), ) )
)
foreach($arr2 as $v) $arr[$v['uid']]['arr2'][] = $v;
print_r($arr);
Array
(
[1] => Array
(
[arr1] => Array
(
[0] => Array
(
[id] => 1
[times] => 2014-02-25
[counts] => 19
) ) [arr2] => Array
(
[0] => Array
(
[uid] => 1
[times] => 2014-02-25
[counts] => 19
) [1] => Array
(
[uid] => 1
[times] => 2014-02-26
[counts] => 17
) [2] => Array
(
[uid] => 1
[times] => 2014-02-27
[counts] => 16
) [3] => Array
(
[uid] => 1
[times] => 2014-02-28
[counts] => 15
) [4] => Array
(
[uid] => 1
[times] => 2014-02-28
[counts] => 12
) [5] => Array
(
[uid] => 1
[times] => 2014-02-28
[counts] => 11
) ) ) [2] => Array
(
[arr1] => Array
(
[0] => Array
(
[id] => 2
[times] => 2014-02-26
[counts] => 17
) ) ) [3] => Array
(
[arr1] => Array
(
[0] => Array
(
[id] => 3
[times] => 2014-02-27
[counts] => 6
) ) [arr2] => Array
(
[0] => Array
(
[uid] => 3
[times] => 2014-02-28
[counts] => 18
) [1] => Array
(
[uid] => 3
[times] => 2014-02-28
[counts] => 10
) ) ) [4] => Array
(
[arr2] => Array
(
[0] => Array
(
[uid] => 4
[times] => 2014-02-28
[counts] => 14
) [1] => Array
(
[uid] => 4
[times] => 2014-02-28
[counts] => 13
) ) ))
foreach($arr2 as $v) $arr[$v['uid']]['arr2'][] = $v;foreach($arr as &$v) {
if(isset($v['arr2'])) {
if(count($v['arr2']) > 3) $v['arr2'] = array_slice($v['arr2'], 0, 3);
else while(count($v['arr2']) < 3) $v['arr2'][] = end($arr2);
}
}
print_r($arr);
Array
(
[1] => Array
(
[arr1] => Array
(
[0] => Array
(
[id] => 1
[times] => 2014-02-25
[counts] => 19
) ) [arr2] => Array
(
[0] => Array
(
[uid] => 1
[times] => 2014-02-25
[counts] => 19
) [1] => Array
(
[uid] => 1
[times] => 2014-02-26
[counts] => 17
) [2] => Array
(
[uid] => 1
[times] => 2014-02-27
[counts] => 16
) ) ) [2] => Array
(
[arr1] => Array
(
[0] => Array
(
[id] => 2
[times] => 2014-02-26
[counts] => 17
) ) ) [3] => Array
(
[arr1] => Array
(
[0] => Array
(
[id] => 3
[times] => 2014-02-27
[counts] => 6
) ) [arr2] => Array
(
[0] => Array
(
[uid] => 3
[times] => 2014-02-28
[counts] => 18
) [1] => Array
(
[uid] => 3
[times] => 2014-02-28
[counts] => 10
) [2] => Array
(
[uid] => 3
[times] => 2014-02-28
[counts] => 10
) ) ) [4] => Array
(
[arr2] => Array
(
[0] => Array
(
[uid] => 4
[times] => 2014-02-28
[counts] => 14
) [1] => Array
(
[uid] => 4
[times] => 2014-02-28
[counts] => 13
) [2] => Array
(
[uid] => 3
[times] => 2014-02-28
[counts] => 10
) ) ))你有一个不存在下级节点的节点,打算如何处理?