我有一系列产品
$products = array_count_values($products);
现在我有一个数组,其中$ key是产品编号,$ value是多少 我在阵列中有这样的产品。 我想对这个新数组进行排序,该产品具有最少的“重复” 在第一个地方,但我使用(rsort,krsort,..)我松散的产品 数字(关键)。
有什么建议吗?
感谢。
答案 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()
-数组反向排序。
答案 5 :(得分:-1)
只是一个想法; asort - 按升序排序(从低到高)
也许试试
dsort - 降序(从高到低)