Php 按子数组计数对多维数组排序

Php 按子数组计数对多维数组排序,php,arrays,sorting,Php,Arrays,Sorting,我对数组排序有问题 我的类别有一个数组,如下所示: Array ( [0] => Array ( [title] => category [url] => http//mycategoryurl [subcategory] => Array ( [0] => Array

我对数组排序有问题

我的类别有一个数组,如下所示:

Array
(
    [0] => Array
        (
            [title] => category
            [url] => http//mycategoryurl
            [subcategory] => Array
                (
                    [0] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [1] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [2] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                )
        )
    [1] => Array
        (
            [title] => category
            [url] => http//mycategoryurl
            [subcategory] => Array
                (
                    [0] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [1] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [2] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [3] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                )
        )
    [2] => Array
        (
            [title] => category
            [url] => http//mycategoryurl
            [subcategory] => Array
                (
                    [0] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [1] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                )
        )
)
我想按
计数(子类别)
对该数组进行排序,如下所示:

Array
(
    [0] => Array
        (
            [title] => category
            [url] => http//mycategoryurl
            [subcategory] => Array
                (
                    [0] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [1] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [2] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [3] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                )
        )
    [1] => Array
        (
            [title] => category
            [url] => http//mycategoryurl
            [subcategory] => Array
                (
                    [0] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [1] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [2] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                )
        )
    [2] => Array
        (
            [title] => category
            [url] => http//mycategoryurl
            [subcategory] => Array
                (
                    [0] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                    [1] => Array
                        (
                            [title] => category - first
                            [url] => http//mycategoryurl
                        )
                )
        )
)
请帮助我像我的示例中那样对该数组进行排序。

使用回调函数:

$arr = array(); // your array
usort($arr, function($a, $b) { return count($a['subcategory']) < $count($b['subcategory'])? -1 : 1; });
print_r($arr);
$arr=array();//你的阵列
usort($arr,function($a,$b){返回计数($a['subcategory'])<$count($b['subcategory'])?-1:1;});
印刷费($arr);
您将希望像这样使用函数:

usort($arrayToSort, function($a, $b){
    $aCount = count($a['subcategory']);
    $bCount = count($b['subcategory']);
    if ($aCount  == $bCount) {
        return 0;
    }

    //flip the '>' to '<' for ascending sort. It is set to do descending 
    return ($aCount > $bCount) ? -1 : 1;

});
usort($arrayToSort,函数($a,$b){
$aCount=count($a['subcategory']);
$b计数=计数($b[‘子类别’]);
如果($a计数==$b计数){
返回0;
}

//将“>”切换为“它正在工作,但我希望排序是desc。现在是acs。谢谢。我已经更改了”。现在一切正常。非常感谢我的朋友