按值计数排序数组

时间:2013-07-10 18:57:04

标签: php sorting

我将用我的具体例子来解释:

我的数组由代表产品所属的最具体类别的值组成,但它可能属于类别树上的不同分支,然后每个分支由数组值表示,该数组值本身就是所有父类的数组该类别所属的类别。

我想找到最长的分支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的排序。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

你不需要排序只是为了获得最长的一个; array_reduce可以像max一样使用密钥:

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