首页 > 后端开发 > php教程 > 如何在 PHP 中按指定列对多维数组进行排序?

如何在 PHP 中按指定列对多维数组进行排序?

Mary-Kate Olsen
发布: 2024-12-29 22:39:33
原创
403 人浏览过

How to Sort a Multidimensional Array by a Specified Column in PHP?

在 PHP 中按指定列对多维数组进行排序

要在 PHP 中按特定列对多维数组进行排序,请使用内置的在 PHP 函数 usortuasort 中。排序的关键是提供自定义比较函数来确定数组元素的顺序。

用于排序的自定义比较函数

自定义比较函数接受两个元素数组作为输入并返回一个整数:

  • 如果第一个元素被认为“大于”则为正整数第二个。
  • 如果第一个元素被认为“小于”第二个,则为负整数。
  • 如果元素被认为相等,则为零。

按单列排序

假设您有一个名为的多维数组$data 其中每个元素代表具有多列的记录。要按 'name' 列对数组进行排序,请使用以下代码:

usort($data, function($a, $b) {
  return strcmp($a['name'], $b['name']);
});
登录后复制

此自定义比较函数使用 strcmp 函数来比较每个元素的 'name' 列。排序后的数组将根据 'name' 列按字母顺序排列元素。

按多列排序

按多列排序,将附加参数传递给自定义比较函数。例如,要按 '数字' 排序,然后按 '名称' 排序:

usort($data, function($a, $b) {
  if ($a['number'] == $b['number']) {
    return strcmp($a['name'], $b['name']);
  }
  return $a['number'] - $b['number'];
});
登录后复制

高级功能

您还可以指定以下高级特点:

  • 反向排序:将比较函数的第二个参数设置为SORT_DESC,即可反转排序顺序。
  • 自定义投影:如果列值无法直接比较,请提供投影函数作为第三个参数进行转换他们。

以上是如何在 PHP 中按指定列对多维数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

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