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),其他數組(可以是二維的))

array_multisort 函數的用法請參考: PHP array_multisort()函數超詳細理解

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM