
正文
PHP 二维数组按某一个键值排序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一、前言
在某个项目中,需要读取某个文件夹下的所有文件,在本地的 Windows 环境下时,读取出来的二维数组的文件名称和在 Windows 文件夹的文件排序一致,
但是项目上线后,环境为 Linux, 读取出来的二维数组的文件名称和在 Linux 下的文件排序不一致,具体原因不清楚。
二、解决方案
对读取出来的二维数组按照文件名称进行排序,从而解决问题
参考代码:
$arr=[
array(
'name'=>'Michael',
'age'=>28
),
array(
'name'=>'Jane',
'age'=>14
),
array(
'name'=>'Ming',
'age'=>59
),
array(
'name'=>'Justin',
'age'=>23
),
array(
'name'=>'Coco',
'age'=>23
),
array(
'name'=>'Long',
'age'=>21
),
];
print_r($arr);
array_multisort(array_column($arr,'name'),SORT_ASC,$arr);// 按 ‘name’ 进行升序排序 SORT_ASC 升序 SORT_DESC 降序
print_r($arr);
未排序前数组排序为:

排序后前数组排序为:

三、总结
其中 array_column(数组,数组中的某个键值) 从多维数组中取出某个键值的一列 返回一个一维数组;
array_multisort(数组(一维数组),排序方式(SORT_ASC,SOTR_DESC),其他数组(可以是二维的))
array_multisort 函数的用法请参考: PHP array_multisort()函数超详细理解





