php中有二数组各print_r出来后,如下Array ( [0] => Array ( [uid] => 4 [username] => gongqi [lastpost] => 1322188470 ) [1] => Array ( [uid] => 39511 [username] => adminbr [lastpost] => 1322554209 ) [2] => Array ( [uid] => 39511 [username] => adminbr [lastpost] => 1322554274 ) )Array ( [0] => Array ( [uid] => 3 [username] => aa[lastpost] => 1322188602 ) [1] => Array ( [uid] => 44 [username] => u44 [lastpost] => 1322701052 ) )
现需:把上面的二数组组成一个新的数组arr_new,并按lastpost从大到小排序,输出新数组中记录时,是按lastpost从大到小输出记录的,这如何实现呀,thanks
现需:把上面的二数组组成一个新的数组arr_new,并按lastpost从大到小排序,输出新数组中记录时,是按lastpost从大到小输出记录的,这如何实现呀,thanks
解决方案 »
- 这是什么情况,PHP代码和HTML代码混合在一起
- php问题,网页图片显示不出
- 在网页中无法向mysql中插入记录,这是怎么回事?
- 变量怎么不能从第一页传到第三页?
- fopen()函数为什么不能建新文件夹?
- 在同一页面显示多种语言的问题!
- 我的php.exe老是死。求php for windows最稳定版,最新版下载地址!
- 关于变量传递的问题,不知道怎么回事,总是传不过去
- unix+sybase+windows+php
- 多张照片、多段文字生成长图的php程序没有生成长图
- xampp一个奇怪的问题
- 关于 unset 的作用 以及 memory_get_usage 代码执行时间相关 欢迎大牛进来讨论
$arr_new[取lastpost为key]然后krsort($arr_new);一下。就ok拉
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' => '1'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' => '4')
);$arr2 = array(
array('uid' => '3', 'username' => 'aa', 'lastpost' => '7'),
array('uid' => '44', 'username' => 'u44', 'lastpost' => '3')
);$arr = array_merge($arr1, $arr2);$x = $lastpost = array();
foreach($arr as $one)
{
$lastpost[] = $one['lastpost'];
}array_multisort($lastpost, $arr);echo '<pre>';print_r($arr);/*
Array
(
[0] => Array
(
[uid] => 39511
[username] => adminbr
[lastpost] => 1
) [1] => Array
(
[uid] => 4
[username] => gongqi
[lastpost] => 2
) [2] => Array
(
[uid] => 44
[username] => u44
[lastpost] => 3
) [3] => Array
(
[uid] => 39511
[username] => adminbr
[lastpost] => 4
) [4] => Array
(
[uid] => 3
[username] => aa
[lastpost] => 7
))
*/
$arr1 = array(
array('uid' => '4', 'username' => 'gongqi', 'lastpost' => '2'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' => '1'),
array('uid' => '39511', 'username' => 'adminbr','lastpost' => '4')
);$arr2 = array(
array('uid' => '3', 'username' => 'aa', 'lastpost' => '7'),
array('uid' => '44', 'username' => 'u44', 'lastpost' => '3')
);
写这个工作量太大了。
$a1 = array(
array( 'uid' => 4, 'username' => gongqi, 'lastpost' => 1322188470),
array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554209 ),
array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554274 )
);
$a2 = array(
array ( 'uid' => 3, 'username' => aa,'lastpost' => 1322188602 ),
array ( 'uid' => 44, 'username' => u44, 'lastpost' => 1322701052 ),
);$a3 = array_merge($a1,$a2);
$sort = array_map(create_function('$v', 'return $v["lastpost"];'), $a3);
array_multisort($sort,SORT_NUMERIC,SORT_DESC,$a3);echo '<pre>';
print_r($a3);
echo '</pre>';
/*
Array
(
[0] => Array
(
[uid] => 44
[username] => u44
[lastpost] => 1322701052
) [1] => Array
(
[uid] => 39511
[username] => adminbr
[lastpost] => 1322554274
) [2] => Array
(
[uid] => 39511
[username] => adminbr
[lastpost] => 1322554209
) [3] => Array
(
[uid] => 3
[username] => aa
[lastpost] => 1322188602
) [4] => Array
(
[uid] => 4
[username] => gongqi
[lastpost] => 1322188470
))
*/
array( 'uid' => 4, 'username' => gongqi, 'lastpost' => 1322188470),
array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554209 ),
array( 'uid' => 39511, 'username' => adminbr, 'lastpost' => 1322554274 )
);
$a2 = array(
array ( 'uid' => 3, 'username' => aa,'lastpost' => 1322188602 ),
array ( 'uid' => 44, 'username' => u44, 'lastpost' => 1322701052 ),
);foreach ($a1 as $key=>$val) $a3[$val['lastpost']] = $val;
foreach ($a2 as $key=>$val) $a3[$val['lastpost']] = $val;
krsort($a3);echo '<pre>';
print_r($a3);
echo '</pre>';
不错的方法,不过提醒下,呵呵,假如不是lastpost而是id什么的,就有可能是有相同的存在那么,就会丢失元素