首页 >后端开发 >php教程 >如何按子数组值对多维 PHP 数组进行排序?

如何按子数组值对多维 PHP 数组进行排序?

DDD
DDD原创
2024-12-06 00:54:10237浏览

How to Sort a Multidimensional PHP Array by Sub-array Value?

在 PHP 中按子数组值对多维数组进行排序

在 PHP 中,数组可以是多维的,这意味着它们可以在数组中包含数组。一个常见的用例是根据嵌套子数组中的特定键对此类数组进行排序。

按字符串键排序

考虑以下数组:

$array = [
    [
        'configuration_id' => 10,
        'id' => 1,
        'optionNumber' => '3',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 9,
        'id' => 1,
        'optionNumber' => '2',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ],
    [
        'configuration_id' => 8,
        'id' => 1,
        'optionNumber' => '1',
        'optionActive' => 1,
        'lastUpdated' => '2010-03-17 15:44:12'
    ]
];

要根据 'optionNumber' 键对这个数组进行升序排序,我们可以使用 usort以及一个匿名函数:

usort($array, function ($a, $b) {
    return strcmp($a['optionNumber'], $b['optionNumber']);
});

此函数比较每个子数组的 'optionNumber' 值,如果第一个值较大则返回 1,如果第一个值较小则返回 -1,如果第一个值小于则返回 0平等的。此比较区分大小写。

按整数键排序

如果 'optionNumber' 键包含整数,我们可以使用以下函数:

usort($array, function ($a, $b) {
    return $a['optionNumber'] - $b['optionNumber'];
});

此比较将以升序数字对数组进行排序

注意事项

  • 对于 PHP 5.3 及更高版本,使用太空船运算符 () 而不是减法,以防止溢出/截断
  • 请注意,这些解决方案假设“optionNumber”键存在于所有子数组中并且是预期类型。

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

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