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
相关产品推荐
相关产品推荐

