首页 >后端开发 >php教程 >如何通过嵌套字段高效地对多维 PHP 数组进行排序?

如何通过嵌套字段高效地对多维 PHP 数组进行排序?

DDD
DDD原创
2024-12-02 00:52:14807浏览

How to Sort a Multidimensional PHP Array by a Nested Field Efficiently?

如何通过嵌套字段对多维 PHP 数组进行高效排序?

在 PHP 中,可能会遇到表示表格数据的多维数组,其中每个元素保存一个字段值对的关联数组。按嵌套数组中的特定字段对数据进行排序的任务可以轻松实现。

考虑以下类似数据库的数组:

$data = [
    [
        'name' => 'Sony TV',
        'price' => 600.00
    ],
    [
        'name' => 'LG TV',
        'price' => 350.00
    ],
    [
        'name' => 'Samsung TV',
        'price' => 425.00
    ]
];

要按 ' 对此数组进行排序在“价格”字段中,可以使用 array_multisort() 函数和 array_column() 函数,从多维数组中提取特定的列(字段)。以下代码片段完成此操作:

array_multisort(array_column($data, 'price'), SORT_ASC, $data);

此调用将根据“价格”字段按升序重新排列数组,同时丢弃原始的外部数组键。排序后的数组将显示为:

[
    [
        'name' => 'LG TV',
        'price' => 350.00
    ],
    [
        'name' => 'Samsung TV',
        'price' => 425.00
    ],
    [
        'name' => 'Sony TV',
        'price' => 600.00
    ]
]

或者,对于 8 之前的 PHP 版本,由于引用传递限制,需要两行解决方案:

$col = array_column($data, 'price');
array_multisort($col, SORT_ASC, $data);

以上是如何通过嵌套字段高效地对多维 PHP 数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

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