2013-07-10 41 views
0

我會用我的具體的例子來解釋:排序陣列通過價值觀的伯爵

我的陣列由代表該產品屬於最具體的類別值的,但它可能屬於不同的分支上的類別樹然後每個分支由一個數組值表示,該數組本身就是該類別所屬的所有父類別的數組。

我想找到最長的分支E.g產品所屬的類別中父類別數量最多的類別。例如:

var_dump($my_breadcrumbs); 
array(
    [0] => array([0] => Object Category , [1] Object Category) 
    [1] => array([0] => Object Category , [1] Object Category, [2] Object Category) 

我想移動與值的最大數量的數組元素位置0

我可以通過一系列的測試,這樣做,但我想看看是否有辦法使用PHP的排序。

回答

3
usort($my_breadcrumbs, function ($a, $b){ 
    return count($b) - count($a); 
}); 
+0

'返回計數($ A) - 計數($ B);'應該工作一樣好。 – Ryan

+0

@minitech - 你是對的(除了向後),所以我更新了我的答案。謝謝! –

1

你不需要排序只是爲了得到最長的; array_reduce可以用鑰匙像max

$longest = array_reduce($my_breadcrumbs, function($a, $b) { 
    return count($b) > count($a) ? $b : $a; 
}); 
+0

我希望我可以勾選你們倆,因爲兩者都適用於我的具體例子,但我認爲標題的第一個詞是Pe de Leao排序更合適。我只是想給你道具。 – ajameswolf