数据排序取最大值
程序员文章站
2022-06-10 18:01:43
...
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.net/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']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.net/manual/zh/function.usort.php 函数。
楼主的数组从5个元素变成了3个,这用排序能实现吗?
贴出代码瞧瞧!
有什么问题?冒泡一下不就完了么。。。。可以使用 usort http://php.net/manual/zh/function.usort.php 函数。
哈哈,看错了,我以为他要排序。