Php 按计数顺序对数组desc进行排序

Php 按计数顺序对数组desc进行排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,按键的数量对数组排序 <?php $key_a='a'; $key_b='b'; $key_c='c'; $myarray[$key_a][]='1'; $myarray[$key_a][]='2'; $myarray[$key_a][]='3'; $myarray[$key_b][]='2'; $myarray[$key_b][]='2'; $myarray[$key_c][]='a'; ?> 我希望最终得到以下数组: <?php $myarray[$key_a]

按键的数量对数组排序

<?php
$key_a='a';
$key_b='b';
$key_c='c';

$myarray[$key_a][]='1';
$myarray[$key_a][]='2';
$myarray[$key_a][]='3';

$myarray[$key_b][]='2';
$myarray[$key_b][]='2';

$myarray[$key_c][]='a';
?>

我希望最终得到以下数组:

<?php
$myarray[$key_a][]='1';
$myarray[$key_a][]='2';
$myarray[$key_a][]='3'; //$key_a with 3 values

$myarray[$key_b][]='2';
$myarray[$key_b][]='2'; //$key_b with 2 values

$myarray[$key_c][]='a'; //$key_c with 1 value
?> 

需要一个自定义函数来获取按最大值计数排序的新数组

另外-如果总键/值的数量匹配,我希望使用$key_a、$key_b和$key_c对它们进行排序- 在这种情况下,如果$key_b数组有3个值,那么在排序alpha时,声明为'a'的$key_a将在新数组中位于第一位。但是它应该是数字的,如果两个子数组具有相同数量的键,那么它们最好按键进行数字排序

uksort($myarray, function ($a, $b) use ($myarray) {
    $valDiff = count($myarray[$a]) - count($myarray[$b]);

    if ($valDiff != 0) {
        return $valDiff;
    } else {
        return strcmp($a, $b);
    }
});

(或者可能切换了
$a
$b
,我永远记不起哪个返回值会导致升序值和降序值。试试看。)