在array_count_values之后排序数组

时间:2010-05-18 11:19:41

标签: php arrays sorting

我有一系列产品

$products = array_count_values($products);

现在我有一个数组,其中$ key是产品编号,$ value是多少 我在阵列中有这样的产品。 我想对这个新数组进行排序,该产品具有最少的“重复” 在第一个地方,但我使用(rsort,krsort,..)我松散的产品 数字(关键)。

有什么建议吗?

感谢。

6 个答案:

答案 0 :(得分:8)

请查看arsort()作为rsort()(以及该系列函数)的替代方案。

通常,php.net上的“Sorting arrays”页面可能对您有用 - 它是PHP的数组排序函数的比较,基于它们排序的内容,它们排序的方向以及它们是否维护密钥排序时。


请注意,为了完成:

现在去'我有一个数组,其中$ key是产品编号,$ value是我在数组中有这样一个产品的次数。我想对这个新数组进行排序,那个产品最少“重复”的产品位于第一位',您可能需要asort()sort()的链接。)


您的评论示例,使用 asort()

$arr = array(
    1 => 3,
    2 => 2,
    5 => 3,
    9 => 1
);
asort($arr);
print_r($arr);

的产率:

Array
(
    [9] => 1
    [2] => 2
    [1] => 3
    [5] => 3
)

答案 1 :(得分:3)

您想使用asort()

  

此函数对数组进行排序,使得数组索引与它们关联的数组元素保持相关性。这主要用于排序实际元素顺序很重要的关联数组。


无论如何,

rsort()从第一位出错是错误的(其中任何其他排序函数都有r(对于反向),因为它会排序数组从最高最低

asort()最低最高排序:

<?php
$array = array('f'=>1, 'a'=>2, 'c'=>5);  
asort($array);
print_r($array);

给出

Array
(
    [f] => 1
    [a] => 2
    [c] => 5
)

注意:这些函数对数组就地进行排序。他们返回已排序的数组。返回值为:

  

(..)TRUE成功或FALSE失败。

答案 2 :(得分:3)

尝试使用 asort() arsort() 或任何其他 sort function that maintains index association

答案 3 :(得分:0)

您应该使用asort() PHP函数。

答案 4 :(得分:0)

asort()是数组排序,不是升序排序。

dsort不存在。您要寻找的功能是arsort()-数组反向排序。

https://www.php.net/manual/en/function.asort.php

https://www.php.net/manual/en/function.arsort.php

答案 5 :(得分:-1)

只是一个想法; asort - 按升序排序(从低到高)

也许试试

dsort - 降序(从高到低)