首页 后端开发 php教程 如何在 PHP 中按特定键对多维关联数组进行排序?

如何在 PHP 中按特定键对多维关联数组进行排序?

Dec 04, 2024 pm 06:30 PM

How to Sort a Multidimensional Associative Array in PHP by a Specific Key?

如何在 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

11个最佳PHP URL缩短脚本(免费和高级) 11个最佳PHP URL缩短脚本(免费和高级) Mar 03, 2025 am 10:49 AM

11个最佳PHP URL缩短脚本(免费和高级)

在Laravel中使用Flash会话数据 在Laravel中使用Flash会话数据 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash会话数据

简化的HTTP响应在Laravel测试中模拟了 简化的HTTP响应在Laravel测试中模拟了 Mar 12, 2025 pm 05:09 PM

简化的HTTP响应在Laravel测试中模拟了

构建具有Laravel后端的React应用程序:第2部分,React 构建具有Laravel后端的React应用程序:第2部分,React Mar 04, 2025 am 09:33 AM

构建具有Laravel后端的React应用程序:第2部分,React

php中的卷曲:如何在REST API中使用PHP卷曲扩展 php中的卷曲:如何在REST API中使用PHP卷曲扩展 Mar 14, 2025 am 11:42 AM

php中的卷曲:如何在REST API中使用PHP卷曲扩展

在Codecanyon上的12个最佳PHP聊天脚本 在Codecanyon上的12个最佳PHP聊天脚本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12个最佳PHP聊天脚本

Instagram API简介 Instagram API简介 Mar 02, 2025 am 09:32 AM

Instagram API简介

Laravel中的通知 Laravel中的通知 Mar 04, 2025 am 09:22 AM

Laravel中的通知

See all articles