Php 将数组计数值的结果排序到新数组中
我想将结果排序到一个新数组,但不使用$key 因此,最不寻常的数字将排在第一位(或者重复最多的数字将排在第一位)Php 将数组计数值的结果排序到新数组中,php,arrays,sorting,count,duplicates,Php,Arrays,Sorting,Count,Duplicates,我想将结果排序到一个新数组,但不使用$key 因此,最不寻常的数字将排在第一位(或者重复最多的数字将排在第一位) 你喜欢这样吗 Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 [4] => 9 [5] => 8 [6] => 5 [7] => 6 [8] => 7 ) 你说没有$key是什么意思?4,3,2,1,5是新数组
你喜欢这样吗
Array
(
[0] => 4
[1] => 3
[2] => 2
[3] => 1
[4] => 9
[5] => 8
[6] => 5
[7] => 6
[8] => 7
)
你说没有$key是什么意思?4,3,2,1,5是新数组的键吗。。。新数组的结果是:$newarray=array(4,3,2,1,5);谢谢$a=数组(1,1,2,2,3,3,3,4,4,4,4,5);foreach(array_keys(array_count_values($a))作为$key=>$value){echo$value.
'}//这不是我期望得到的0 1 2 3 4您希望新数组不打印出来-这是可行的,但我想知道是否有一个更短的方法:)这样更好吗?也许可以在同一行中进行排序。。不确定。@user330364,My+1这是它所能得到的最短方法!//替换到该行//$a=数组(1,1,2,2,3,3,3,4,4,4,4,5,6,7,8,9);//我没有得到7,8的值,9@user3301364您可以在Nambi提供的演示链接中尝试输入。@user330364谢谢您的建议,我已经编辑了我的答案
$newarray = array_keys(array_count_values($a));
$a = array (1,1,2,2,2,3,3,3,3,4,4,4,4,4,5);
$totals = array_count_values($a);
arsort( $totals );
echo "<pre>";
print_r($totals);
Array
(
[4] => 5
[3] => 4
[2] => 3
[1] => 2
[5] => 1
)
<?php
$a = array (1,1,2,2,2,3,3,3,3,4,4,4,4,4,5,6,7,8,9);
$n=array_count_values($a);
arsort($n);
print_r(array_keys($n));
Array
(
[0] => 4
[1] => 3
[2] => 2
[3] => 1
[4] => 9
[5] => 8
[6] => 5
[7] => 6
[8] => 7
)