我需要按重复值的数量对数组进行排序。
下面是一个示例:
$arr = array(
1=> 'Love is true',
2=> 'Love is true',
3=> 'Hello Word',
4=> 'Hello Word',
5=> 'Hope',
6=> 'Hope',
7=> 'Love is true',
8=> 'Hello Word',
9=> 'Hello Word',
10=>'Hope',
11=>'Hello Word',
12=>'Hope',
13=>'Hello Word',
14=>'Hello Word',
15=>'Hello Word');
print_r($arr);
在这个数组中,我们可以看到
爱是真的>复制>3倍你好单词>复制> 8 倍希望>复制 4 倍>
我希望排序将重复次数最多的值放在第一位:
你好单词位置 1# 在数组中(重复 8 次)希望 2# 在数组中(重复 4 次)爱是真的3#数组(重复3次)
所以它返回这个数组:
Array
(
[0] => Hello Word
[1] => Hope
[2] = Love is true
)
你可以
您可以var_dump该过程的每个步骤以查看发生了什么。
这样做:
$count = array_count_values($arr); // count each repetition
arsort($count); // sort the values
$array = array_keys($count); // get the expected array
print_r($array);
这将输出:
Array
(
[0] => Hello Word
[1] => Hope
[2] => Love is true
)
在这里看到它的实际效果。
您可以在下面获得此答案中使用的函数的一些参考:
- array_count_values:计算数组的所有值;
- asort:对数组进行排序并保持索引关联;
- array_keys:返回数组的所有键或键的子集。
您可以var_dump该过程的每个步骤以查看发生了什么。