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。谢谢。我已经更改了”。现在一切正常。非常感谢我的朋友