You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP多维数组按lastfirma字段排序的实现方法问询

按lastfirma字段排序多维数组

针对你提供的PHP多维数组,要按clients子数组中每个元素的lastfirma字段进行升序排序,可以使用uasort()函数(保留原数组键名)配合自定义比较逻辑实现:

// 假设原数组为$originalArray
$originalArray = [
    '000002' => [
        'clients' => [
            '556046-2222' => [
                'lastfirma' => 'Name 1',
                'periods' => [
                    1 => ['userId' => '000015', 'start' => '2020-05-01', 'end' => '2021-04-30'],
                    2 => ['userId' => '105779', 'start' => '2021-05-01', 'end' => '2022-04-30']
                ]
            ],
            '556892-1111' => [
                'lastfirma' => 'Anomaly',
                'periods' => [
                    1 => ['userId' => '000015', 'start' => '2020-05-01', 'end' => '2021-04-30'],
                    2 => ['userId' => '105779', 'start' => '2021-05-01', 'end' => '2022-04-30']
                ]
            ]
        ]
    ]
];

// 对clients数组按lastfirma升序排序
uasort($originalArray['000002']['clients'], function($a, $b) {
    return strcmp($a['lastfirma'], $b['lastfirma']);
});

// 输出排序后的数组
print_r($originalArray);

说明:

  • uasort()函数会保留原数组的键名(比如556892-1111、556046-2222),同时根据自定义规则排序。
  • 匿名函数中使用strcmp()比较两个lastfirma字符串的ASCII值,实现字典序升序排序;若要降序,可交换$a和$b的位置:return strcmp($b['lastfirma'], $a['lastfirma']);。

内容的提问来源于stack exchange,提问作者Kevin Lindmark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:05:35