一、前言
在某个项目中,需要读取某个文件夹下的所有文件,在本地的 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),其他数组(可以是二维的))
array_multisort 函数的用法请参考: PHP array_multisort()函数超详细理解