php排序 最大值,数据排序取最大值

Array( 0 => Array ( 'id' => 1, 'level' => 6, 'layer' => 1 ), '1' => Array ( 'id' => 15055, [level] => 5, [layer] => 2 ), '2' => Array ( 'id' => 15056, 'level' => 5, 'layer' => 3 ), '3' => Array ( 'id' => 15057, 'level' => 4, 'layer' => 4 ), '4' => Array ( 'id' => 15058, 'level' => 4, 'layer' => 5 ))

如果level 相等就取layer较大的那个数组

最后得到的结果是这样的:

Array

(

0 => Array

(

'id' => 1,

'level' => 6,

'layer' => 1

),

'1' => Array

(

'id' => 15056,

'level' => 5,

'layer' => 3

),

'2' => Array

(

'id' => 15058,

'level' => 4,

'layer' => 5

)

)

回复讨论(解决方案)

有什么问题?冒泡一下不就完了么。。。。

可以使用 usort http://php.com/manual/zh/function.usort.php 函数。

$a = Array( 0 => Array ( 'id' => 1, 'level' => 6, 'layer' => 1 ), '1' => Array ( 'id' => 15055, 'level' => 5, 'layer' => 2 ), '2' => Array ( 'id' => 15056, 'level' => 5, 'layer' => 3 ), '3' => Array ( 'id' => 15057, 'level' => 4, 'layer' => 4 ), '4' => Array ( 'id' => 15058, 'level' => 4, 'layer' => 5 ) );$r = array();foreach($a as $v) { if(! isset($r[$v['level']])) $r[$v['level']] = $v; if($r[$v['level']]['layer'] < $v['layer']) $r[$v['level']] = $v;}$r = array_values($r);var_export($r); array ( 0 => array ( 'id' => 1, 'level' => 6, 'layer' => 1, ), 1 => array ( 'id' => 15056, 'level' => 5, 'layer' => 3, ), 2 => array ( 'id' => 15058, 'level' => 4, 'layer' => 5, ),)

楼主的数组从5个元素变成了3个,这用排序能实现吗?

贴出代码瞧瞧!

有什么问题?冒泡一下不就完了么。。。。

可以使用 usort http://php.com/manual/zh/function.usort.php 函数。

楼主的数组从5个元素变成了3个,这用排序能实现吗?

贴出代码瞧瞧!

有什么问题?冒泡一下不就完了么。。。。

可以使用 usort http://php.com/manual/zh/function.usort.php 函数。

哈哈,看错了,我以为他要排序。 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值