我有一系列的产品
$products = array_count_values($products);
现在我有一个数组,其中$key是产品编号,$value是数组中有多少次这样的产品。我想对这个新数组进行排序,将具有最少“重复”的产品放在首位,但无论我使用什么(rsort,krsort,..),我都会丢失产品编号(密钥)。有什么建议吗?谢谢.
w9apscun1#
看看arsort()作为rsort()(以及该系列函数)的替代品。一般来说,php.net上的'Sorting arrays'页面可能对你有用-它是PHP数组排序函数的比较,基于它们排序的内容,它们排序的方向,以及它们在排序时是否保留键。注意,为了完成:现在我有一个数组,其中$key是产品编号,$value是数组中有多少次这样的产品。我想对这个新数组进行排序,最少“重复”的产品放在第一位,你可能需要asort()(sort()的吊坠)。您的评论示例,使用**asort()**:
arsort()
rsort()
asort()
sort()
$arr = array( 1 => 3, 2 => 2, 5 => 3, 9 => 1 ); asort($arr); print_r($arr);
产量:
Array ( [9] => 1 [2] => 2 [1] => 3 [5] => 3 )
k5ifujac2#
你想使用asort():此函数对数组进行排序,以使数组索引保持与它们关联的数组元素的相关性。这主要用于对实际元素顺序很重要的关联数组进行排序时。rsort()从一开始就是错误的(任何其他包含r(表示 reverse)的排序函数也是如此),因为它会从 highest 到 lowest 对数组进行排序。asort()从 * 最低 * 到 * 最高 * 排序:
r
<?php $array = array('f'=>1, 'a'=>2, 'c'=>5); asort($array); print_r($array);
给
Array ( [f] => 1 [a] => 2 [c] => 5 )
注意:这些函数对数组进行原地排序。它们不返回一个已排序的数组。返回值为:
(..)TRUE成功或FALSE失败。
TRUE
FALSE
ibrsph3r3#
尝试使用**asort()或arsort()或任何其他sort function that maintains index association**。
up9lanfz4#
你应该使用asort() PHP函数。
iezvtpos5#
asort()是数组排序,不是升序排序。dsort不存在。您正在寻找的函数是**arsort()**-数组反向排序。https://www.php.net/manual/en/function.asort.phphttps://www.php.net/manual/en/function.arsort.php
dsort
**arsort()**
cotxawn76#
使用此方法按[值]排序:
$array = array_count_values($array); ksort($array, SORT_REGULAR);
deikduxw7#
只是一个想法; asort -按升序排序(从低到高)也许试试dsort -降序(从高到低)
7条答案
按热度按时间w9apscun1#
看看
arsort()
作为rsort()
(以及该系列函数)的替代品。一般来说,php.net上的'Sorting arrays'页面可能对你有用-它是PHP数组排序函数的比较,基于它们排序的内容,它们排序的方向,以及它们在排序时是否保留键。
注意,为了完成:
现在我有一个数组,其中$key是产品编号,$value是数组中有多少次这样的产品。我想对这个新数组进行排序,最少“重复”的产品放在第一位,你可能需要
asort()
(sort()
的吊坠)。您的评论示例,使用**
asort()
**:产量:
k5ifujac2#
你想使用
asort()
:此函数对数组进行排序,以使数组索引保持与它们关联的数组元素的相关性。这主要用于对实际元素顺序很重要的关联数组进行排序时。
rsort()
从一开始就是错误的(任何其他包含r
(表示 reverse)的排序函数也是如此),因为它会从 highest 到 lowest 对数组进行排序。asort()
从 * 最低 * 到 * 最高 * 排序:给
注意:这些函数对数组进行原地排序。它们不返回一个已排序的数组。返回值为:
(..)
TRUE
成功或FALSE
失败。ibrsph3r3#
尝试使用**
asort()
或arsort()
或任何其他sort function that maintains index association**。up9lanfz4#
你应该使用
asort()
PHP函数。iezvtpos5#
asort()
是数组排序,不是升序排序。dsort
不存在。您正在寻找的函数是**arsort()**
-数组反向排序。https://www.php.net/manual/en/function.asort.php
https://www.php.net/manual/en/function.arsort.php
cotxawn76#
使用此方法按[值]排序:
deikduxw7#
只是一个想法; asort -按升序排序(从低到高)
也许试试
dsort -降序(从高到低)