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

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

DDD
发布: 2024-12-06 00:54:10
原创
239 人浏览过

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

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