whx-blogs

一、前言

在某个项目中,需要读取某个文件夹下的所有文件,在本地的 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()函数超详细理解

 

分类:

技术点:

相关文章: