如何在 PHP 中按键对关联数组进行排序 [重复]
对数组进行排序可能是编程中的一项常见任务,尤其是当处理 PHP 中的关联数组等数据结构。这些数组与常规数组类似,但允许您通过键而不是数字索引来访问元素。
问题:
您有一个关联数组,其元素如下如下所示:
Array ( [0] => Array ( [text] => tests [language] => [advertiserCompetitionScale] => 5 [avgSearchVolume] => 7480000 [lastMonthSearchVolume] => 9140000 ) [1] => Array ( [text] => personality tests [language] => [advertiserCompetitionScale] => 5 [avgSearchVolume] => 165000 [lastMonthSearchVolume] => 201000 ) [2] => Array ( [text] => online tests [language] => [advertiserCompetitionScale] => 5 [avgSearchVolume] => 246000 [lastMonthSearchVolume] => 301000 ) )
您想要根据“avgSearchVolume”按降序排列此数组
解决方案:
PHP 提供了一个名为 usort 的内置函数,您可以使用它来实现此目的。 usort 有两个参数:一个要排序的数组和一个比较函数。比较函数采用两个数组元素作为参数,并返回负整数、零或正整数:
要对数组进行排序,您可以定义一个比较函数,如下所示:
function cmp($a, $b) { return $b['avgSearchVolume'] - $a['avgSearchVolume']; }
此函数从“avgSearchVolume”中减去第一个元素的“avgSearchVolume”字段” 第二个元素的字段。如果结果为负,则意味着第二个元素应该位于第一个元素之前。如果为零,则元素被视为相等。如果是正数,第一个元素应该在第二个元素之前。
最后,您可以调用 usort 并将比较函数作为第二个参数传递:
usort($array, "cmp");
调用 usort 后,您的数组将按“avgSearchVolume”字段降序排序。
以上是如何在 PHP 中按特定键对多维关联数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!