数据排序取最大值

Hx_Moon_ 2015-08-04 02:01:17

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
)

)
...全文
140 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
李睿_Lee 2015-08-04
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
楼主的数组从5个元素变成了3个,这用排序能实现吗? 贴出代码瞧瞧! [quote=引用 1 楼 Novolee 的回复:] 有什么问题?冒泡一下不就完了么。。。。
引用 2 楼 shiyj 的回复:
可以使用 usorthttp://php.net/manual/zh/function.usort.php 函数。
[/quote] 哈哈,看错了,我以为他要排序。
xuzuning 2015-08-04
  • 打赏
  • 举报
回复
楼主的数组从5个元素变成了3个,这用排序能实现吗? 贴出代码瞧瞧!
引用 1 楼 Novolee 的回复:
有什么问题?冒泡一下不就完了么。。。。
引用 2 楼 shiyj 的回复:
可以使用 usorthttp://php.net/manual/zh/function.usort.php 函数。
xuzuning 2015-08-04
  • 打赏
  • 举报
回复
$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,
  ),
)
他山玉 2015-08-04
  • 打赏
  • 举报
回复
可以使用 usorthttp://php.net/manual/zh/function.usort.php 函数。
李睿_Lee 2015-08-04
  • 打赏
  • 举报
回复
有什么问题?冒泡一下不就完了么。。。。

21,873

社区成员

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

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