PHP 二维数组按某一个键值排序

一、前言

在某个项目中,需要读取某个文件夹下的所有文件,在本地的 Windows 环境下时,读取出来的二维数组的文件名称和在 Windows 文件夹的文件排序一致,

但是项目上线后,环境为 Linux, 读取出来的二维数组的文件名称和在 Linux 下的文件排序不一致,具体原因不清楚。

二、解决方案

对读取出来的二维数组按照文件名称进行排序,从而解决问题

参考代码:

 1 $arr=[
 2     array(
 3         'name'=>'Michael',
 4         'age'=>28
 5     ),
 6     array(
 7         'name'=>'Jane',
 8         'age'=>14
 9     ),
10     array(
11         'name'=>'Ming',
12         'age'=>59
13     ),
14     array(
15         'name'=>'Justin',
16         'age'=>23
17     ),
18     array(
19         'name'=>'Coco',
20         'age'=>23
21     ),
22     array(
23         'name'=>'Long',
24         'age'=>21
25     ),
26 ];
27 print_r($arr);
28 array_multisort(array_column($arr,'name'),SORT_ASC,$arr);  // 按 ‘name’ 进行升序排序 SORT_ASC 升序 SORT_DESC 降序
29 print_r($arr);

未排序前数组排序为:

排序后前数组排序为:

 三、总结

其中  array_column(数组,数组中的某个键值)  从多维数组中取出某个键值的一列  返回一个一维数组;

array_multisort(数组(一维数组),排序方式(SORT_ASC,SOTR_DESC),其他数组(可以是二维的))

猜你喜欢

转载自www.cnblogs.com/whx-blogs/p/10387849.html
今日推荐