如何按多个字段对多维 PHP 数组进行排序?

DDD
发布: 2024-11-22 05:53:14
原创
900 人浏览过

How Can I Sort a Multidimensional PHP Array by Multiple Fields?

按多个字段值对多维数组进行排序

在 PHP 中,可以使用 array_multisort() 来完成按多个字段值对多维数组进行排序。

考虑以下事项array:

$data = [
    [
        "destination" => "Sydney",
        "airlines" => "airline_1",
        "one_way_fare" => 100,
        "return_fare" => 300
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_2",
        "one_way_fare" => 150,
        "return_fare" => 350
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_3",
        "one_way_fare" => 180,
        "return_fare" => 380
    ]
];
登录后复制

要按 return_fare 升序和 one_way_fare 升序对数组进行排序,请使用 array_multisort():

// Extract specific fields into individual arrays
$return_fare = array_column($data, 'return_fare');
$one_way_fare = array_column($data, 'one_way_fare');

// Sort arrays using multiple criteria
array_multisort($return_fare, SORT_ASC, $one_way_fare, SORT_ASC, $data);

// Print sorted array
print_r($data);
登录后复制

替代方法:

  • array_orderby()函数: 对于简洁的解决方案,请考虑使用 array_orderby() 函数,它提供了 array_multisort() 的包装器。
  • **array_column() 和 array_multisort()**:避免迭代数组,在排序之前使用 array_column()` 提取特定字段值。
array_multisort(array_column($data, 'return_fare'), SORT_ASC,
                array_column($data, 'one_way_fare'), SORT_ASC,
                $data);
登录后复制

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

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