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'] < $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.net/manual/zh/function.usort.php 函數。
樓主的數組從5個元素變成了3個,這用排序能實現嗎?
貼出代碼瞧瞧!
有什麼問題?冒泡一下不就完了麼。。。。
可以使用 usort http://php.net/manual/zh/function.usort.php 函數。
哈哈,看錯了,我以為他要排序。