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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-29 22:39:33424浏览

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

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