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 ( '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 函数。
哈哈,看错了,我以为他要排序。