首页 > 后端开发 > php教程 > 如何分别按数值和键降序和升序对关联数组进行排序?

如何分别按数值和键降序和升序对关联数组进行排序?

Susan Sarandon
发布: 2024-11-11 10:01:03
原创
327 人浏览过

How to Sort an Associative Array by Numeric Value and Key in Descending and Ascending Order Respectively?

按数值和键进行关联数组排序

此编程困境涉及带有数值的关联数组,专门针对创建列表其中标签首先按出现次数降序排序,然后按字母升序排序

问题定义

考虑一个示例数组:

$arrTags = [
    'mango' => 2, 
    'orange' => 4, 
    'apple' => 2,
    'banana' => 3
];
登录后复制

此数组所需的输出是一个排序列表:

orange (4)  
banana (3) 
apple (2) 
mango (2)
登录后复制

原生 PHP 函数 arsort() 存在不足,因为它会优先考虑芒果而不是苹果,因为

解决方案

使用 array_keys() 和 array_values() 函数,可以更有效地解决这个问题。以下代码举例说明了解决方案:

array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);
登录后复制

这一行消除了对循环的需要,并通过首先使用 array_values() 将数组中的值提取到可排序数组中来完成必要的排序。随后,使用 SORT_DESC 将值按降序排序。同时,使用 array_keys() 提取相应的键,并使用 SORT_ASC 按升序排序。然后利用提供的 $arrTags 参数将结果重新组合到原始数组中。

以上是如何分别按数值和键降序和升序对关联数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板