这样的数组如何降序输出?

kwwlysua 2012-05-24 05:14:24
$arr=array(array('132','20120524','23232.2','21.31'),array('126','20120524','-231232.2','13.321'),array('321','20120524','232.32','1.31')));

根据第3小组数据进行降序输出,请老师指教,谢谢!
...全文
138 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-05-27
  • 打赏
  • 举报
回复
<?php
$arr=array(array('132','20120524','23232.2','21.31'),array('126','20120524','-231232.2','13.321'),array('321','20120524','232.32','1.31'));
uasort($arr, function($left, $right) {
if ($left[2] < $right[2]) {
return -1;
} else if ($left[2] == $right[2]) {
return 0;
} else {
return 1;
}
});
print_r($arr);
?>


了解了一下,multisort在key相等的时候会用接下来的字段做比较,这里不合适。
itcaicai 2012-05-26
  • 打赏
  • 举报
回复
什么叫“根据第3小组数据进行降序输出?”
你的二维数组数据格式
arr[0]'132','20120524','23232.2','21.31'
arr[1]'126','20120524','-231232.2','13.321'
arr[2]'321','20120524','232.32','1.31'
你想要把arr[2]降序后输出整个数组,还是根据最后一列的大小顺序排列arr[0]arr[1]and arr[2]?

[Quote=引用楼主 的回复:]
$arr=array(array('132','20120524','23232.2','21.31'),array('126','20120524','-231232.2','13.321'),array('321','20120524','232.32','1.31')));

根据第3小组数据进行降序输出,请老师指教,谢谢!
[/Quote]
qq120848369 2012-05-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

PHP code
foreach($arr as $v) $t[]=$v[2];
array_multisort($t,SORT_DESC,$arr);
print_r($arr);
[/Quote]

++
一起混吧 2012-05-24
  • 打赏
  • 举报
回复
foreach($arr as $v) $t[]=$v[2];
array_multisort($t,SORT_DESC,$arr);
print_r($arr);
  • 打赏
  • 举报
回复

$arr=array(array('132','20120524','23232.2','21.31'),array('126','20120524','-231232.2','13.321'),array('321','20120524','232.32','1.31'));
$tmp = array_multisort($arr,SORT_DESC,SORT_REGULAR);
print_r($arr);
#Array ( [0] => Array ( [0] => 321 [1] => 20120524 [2] => 232.32 [3] => 1.31 ) [1] => Array ( [0] => 132 [1] => 20120524 [2] => 23232.2 [3] => 21.31 ) [2] => Array ( [0] => 126 [1] => 20120524 [2] => -231232.2 [3] => 13.321 ) )

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧