根据频率对数组中的元素排序


Order elements inside this array on the basis of frequency

我在一个项目的中间面对这种数组。我希望它是在ID频率的基础上排序,这意味着哪个ID是重复最多的,必须作为结果数组的第一个元素。怎么做?

提前感谢帮助!!

Array
(
    [0] => Array
        (
            [id] => 1
        )
[1] => Array
    (
        [id] => 4
    )
[2] => Array
    (
        [id] => 3
    )
[3] => Array
    (
        [id] => 4
    )
[4] => Array
    (
        [id] => 1
    )
[5] => Array
    (
        [id] => 4
    )
[6] => Array
    (
        [id] => 7
    )
)

如果上面的数组是你的结构,那么像这样的东西会为你做的技巧,组织id与它的相关计数:

$filtered = array_count_values(array_column($myArray, 'id'));
// now sort it: high - low
arsort($filtered);

生成如下数组:

Array (
    [4] => 3
    [1] => 2
    [3] => 1
    [7] => 1
)

上面的键是id列,值是它在初始数组中出现的次数

我的问题是;您需要它的原始格式,只是订购,或者是一个频率显示,如上面的足够?