如何按值对多维数组进行排序? [复制]

2024-02-21

我有一个如下数组,我想按键“attack”的值对该数组进行排序。数组的第一个键(15, 13, 18)是数据库中某些特定项目的 ID,因此我不希望在数组排序时更改这些键。任何帮助将不胜感激。

这是数组:

$data = array(
    '15' => array(
        'attack' => '45', 'defence' => '15', 'total' => '10'
    ),
    '13' => array(
        'attack' => '25', 'defence' => '15', 'total' => '10'
    ),
    '18' => array(
        'attack' => '35', 'defence' => '15', 'total' => '10'
    )
);

Use uasort() http://www.php.net/manual/en/function.uasort.php:

该函数使用用户定义的比较函数对数组进行排序,以便数组索引保持与其关联的数组元素的相关性。

这主要在对实际元素顺序很重要的关联数组进行排序时使用。

Example:

function cmp($a, $b) {
    if ($a['attack'] == $b['attack']) {
        return 0;
    }
    return ($a['attack'] < $b['attack']) ? -1 : 1;
} 

uasort($data, 'cmp');

如果值始终是字符串,您还可以使用strcmp() http://php.net/manual/en/function.strcmp.php in the cmp()功能:

function cmp($a, $b) {
    return strcmp($a['attack'], $b['attack']);
} 

Update:

要按降序排序,您只需更改返回值:

return ($a['attack'] < $b['attack']) ? 1 : -1;
//                                     ^----^

或接受@salathe 的提案:

return $b['attack'] - $a['attack'];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何按值对多维数组进行排序? [复制] 的相关文章

  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 简单的 PHP 回显代码不起作用

    这是我的 html 和 php 脚本 h1 Bob s Auto Parts h1 table width 100 tr tr table 为什么这个输出会出现一个 gt 我希望它是 这有效 仅有的 这是输出 鲍勃的汽车零件 鲍勃
  • 如何让Apache服务index.php而不是index.html?

    如果我将以下行放入index html文件 使 Apache 包含index php file 参观index html页面向我显示了这个 这是为什么 为什么它实际上不包含 PHP 文件 正如其他人指出的那样 您很可能没有 html设置为处
  • laravel - 使用请求类或输入类

    在宁静的控制器中 我应该使用哪个类来获取传递的变量 member gt email Input get email or member gt email Request get email 两种选择都适合我 但有什么区别 Input get
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • 编辑 HTACCESS 文件以防止直接访问特定文件夹中的特定文件

    我试图阻止直接访问子文件夹中的特定文件 我意识到这个论坛上有很多描述类似问题的主题 但是 我的似乎有点尴尬 由于我已经存在 HTACCESS 文件 这是文件的文件路径 www example com PRINCIPAL PROJECTS m
  • 在 C 中通过引用传递数组

    我是 C 新手 我有一个疑问 由于 C 函数创建其参数的本地副本 我想知道为什么以下代码按预期工作 void function int array array 0 4 array 1 5 array 2 6 int main int arr
  • PHP - 类外 use 关键字和类内 use 关键字的区别

    伙计们 美好的一天 只是想问一下有什么区别use之外的class and use在 的里面class 我也用谷歌搜索过 但我的问题与答案不匹配 Example namespace App Http Controllers Auth use
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 在Javascript中按降序对字符串进行排序(最有效)?

    W3Schools 有这个例子 var fruits Banana Orange Apple Mango fruits sort fruits reverse 这是在 Javascript 中按降序对字符串进行排序的最有效方法吗 Updat
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 如何将 Smarty 3 包含到 Laravel 4 中?

    我是 Laravel 的新手 所以仍在习惯这些概念 但是我有大约 10 年的使用 Smarty 的经验 所以我希望利用这一点 除了事实上 Blade 似乎缺乏太多我发现有用且在 Smarty 中开箱即用的功能 但无论如何除了这个问题的要点之
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function

随机推荐

  • Android 通过后退按钮关闭应用程序

    该应用程序看起来像这样 主活动 gt 用户活动 gt 详细信息活动 活动的大致顺序 我想在DetailsActivity 行中的第三个活动 中单击后退按钮时关闭应用程序 想知道这样做是否是好的做法以及最好的方法是什么 如果我理解正确的话 即
  • Git:如何将现有的“merge”转换为“merge --squash”?

    我表演了多次merge承诺但他们应该是merge squash反而 解决冲突花了一天多的时间 所以我无法手动重新进行合并 有没有办法转换merge to merge squash 这里值得注意的是git merge and git merg
  • pandas 和 matplotlib:将两个图合并为一个图例项

    我有以下代码 from pandas import DataFrame import matplotlib pyplot as plt if name main lower bound 0 1 2 3 value 1 2 3 4 upper
  • 如何使用 span 设置 PHP echo 输出的样式

    我正在尝试设计每个回声的输出 理想情况下我想使用 span class span 对于每个回声 但我不太确定如何实现这一点 result mysql query SELECT FROM Blog while row mysql fetch
  • 如何在 Notepad++ 中自动更改 XHTML 结束标签

    如果之前有人问过这个问题 我深表歉意 但我不相信有人明确提出过这个问题 导致 stackoverflow 上出现很多混乱 我正在使用 Notepad v6 6 9 我正在寻找自动更改结束语的方法当我想 稍后 更改我的开始元素标签时 例如 如
  • Django 和项目/应用程序组织

    我刚刚开始学习 Django 对布局和组织项目和应用程序的最佳方式有点困惑 根据我的理解 项目是您的整个网站 应用程序是组成该网站的各个部分 对于第一个项目 我正在制作一个小型电子商务类型的网站 其中将包含用户 项目等 那么我应该有 用户
  • 使用 DATETIME mysql 查询日期之间的时间范围

    我有一个数据库表 其中包含如下字段 TIME Datetime Update ID 2013 11 25 05 00 14 XC3 2013 11 25 06 00 13 XC4 2013 11 25 06 00 19 XC5 2013 1
  • AngularJS 在哪里存储缓存数据

    我正在使用 AngularJS 构建一个应用程序 我需要跨会话存储一些数据 我以为 cacheFactory可能是一个选择 但是 我不知道在哪里缓存对象 http docs angularjs org api ng type 24cache
  • 如何使用 Tippy.js 在 mouseenter 上显示工具提示并在单击时隐藏

    我在用Tippy js https atomiks github io 我想在 mouseenter 上显示工具提示 但在单击时隐藏它 当您click在一个元素上 tippy并保持打开状态 直到您点击离开 tippy tippy trigg
  • 无限滚动一次加载所有项目?

    我正在使用一个名为自动浏览 https github com msjolund jquery esn autobrowse它代表一种无限滚动类型的脚本 可从 JSON 文件中提取数据 当我将脚本设置为重复 循环 这些项目几次时 它的工作原理
  • 错误:OID 未增加:SNMPv2-SMI::dod,如何增加 OID?

    我正在尝试实现具有两个不同上下文名称的 snmp 代理 我得到了一些示例程序 这是我的代理端代码 我从snmplabs com http snmplabs com 我尝试实现它 但在执行 snmpwalk 时遇到一些错误 snmpwalk
  • 在centos 6.4上安装numpy&scipy

    我在虚拟环境中工作 安装 numpy 和 scipy 时遇到问题 据我了解 在使用 scipy 之前我必须完全安装 numpy 但是我在安装 numpy 时遇到了问题 I usedpip install numpy并将 numpy 安装到我
  • 具有多个查找字段的 Rest 调用以进行反向查找

    在Django Rest框架中 有没有办法拥有多个查找字段 我知道这听起来不太好REST友好的 我有一个Company模型 我想首先通过国家 地区列出它们 然后通过 slug 字段列出它们 例如 companies
  • Restore_best_weights 问题 keras 提前停止

    我正在将 Keras 的 EarlyStopping 用于我的深度学习项目 文档here https keras io callbacks earlystopping提到了一个非常有用的恢复最佳体重的想法 但不知何故我还无法使用它 我使用的
  • 使用 lambda 表达式来避免使用“魔术字符串”来指定属性

    我正在编写一项服务来获取特定类型的对象集合输出其原始类型 字符串类型和日期时间类型 https stackoverflow com questions 3161959 in c is there a way retrieve only bu
  • C++ 使用 .o 链接和使用 .a 文件链接之间存在差异:行为不同,为什么?

    我期望 与 o 文件链接和与从 o 文件存档的 a 文件链接应该没有区别 但事实并非如此 我有2个源文件 每个都声明1个类 1个静态对象 1个函数 以及一个调用其中一个函数的main cpp cat First cpp include
  • 改变rgba颜色的色调

    我使用 RGBA 颜色在 matplotlib 中将一堆数据绘制为对数刻度上的散点图 以防万一介质相关 我希望能够做的是 一旦绘制了所有内容 我想挑选出各个散点并将其色调更改为某种 RGB 颜色的色调 但保留旧的 alpha 值 我目前的做
  • 将分类数据从 CSV 加载到 Scikit-Learn 以进行机器学习

    我正在学习 Scikit Learn 对推文进行一些分类 我有一个 csv 其中一列包含推文 下一列包含 0 11 的班级 我经历了本教程来自 Scikit Learn 网站 http scikit learn org stable tut
  • 日期范围越小SQL查询时间越长?

    我有一个简单的 select 语句 它从 SQL Server 2000 这么旧 的表中选择数据 该表大约有 10 2000 万行 如下所示 startDate 2014 01 25 yyyy mm dd endDate 2014 02 2
  • 如何按值对多维数组进行排序? [复制]

    这个问题在这里已经有答案了 我有一个如下数组 我想按键 attack 的值对该数组进行排序 数组的第一个键 15 13 18 是数据库中某些特定项目的 ID 因此我不希望在数组排序时更改这些键 任何帮助将不胜感激 这是数组 data arr