這篇文章主要介紹的內容是關於PHP二維數組排序array_multisort,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
對2維數組或者多維數組排序是常見的問題,在PHP中我們有個專門的多維數組排序函數,下面簡單介紹下:
array_multisort(array1,sorting order, sorting type,array2,array3..) 是对多个数组或多维数组进行排序的函数。
array1 | #必需。規定輸入的數組。 |
sorting order | 可選。規定排列順序。可能的值是 SORT_ASC 和 SORT_DESC。 |
sorting type | 可選。規定排序類型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。 |
array2 | 可選。規定輸入的數組。 |
array3 | 可選。規定輸入的數組。 |
參數中的陣列被當成一個表格的列並以行來進行排序 - 這類似 SQL 的 ORDER BY 子句的功能。第一個陣列是要排序的主要陣列。數組中的行(值)比較相同的話,就會按照下一個輸入數組中對應值的大小進行排序,依此類推。
第一個參數是數組,隨後的每一個參數可能是數組,也可能是下面的排序順序標誌(排序標誌用於更改預設的排列順序)之一:
SORT_ASC - 默認,按升序排列。 (A-Z)
SORT_DESC - 依降序排列。 (Z-A)
隨後可以指定排序的類型:
SORT_REGULAR - 預設。將每一項按常規順序排列。
SORT_NUMERIC - 將每一項依數字順序排列。
SORT_STRING - 將每一項按字母順序排列
<?php function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; } $person = array( array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180), array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150), array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156), array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190), array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200), array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110), array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170) ); var_dump($person); $person = my_sort($person,'name',SORT_ASC,SORT_STRING); var_dump($person); $person = my_sort($person,'weight'); var_dump($person); ?>
結果如下:
array (size=7) 0 => array (size=4) 'id' => int 1 'name' => string 'fj' (length=2) 'weight' => int 100 'height' => int 180 1 => array (size=4) 'id' => int 2 'name' => string 'tom' (length=3) 'weight' => int 53 'height' => int 150 2 => array (size=4) 'id' => int 3 'name' => string 'jerry' (length=5) 'weight' => int 120 'height' => int 156 3 => array (size=4) 'id' => int 4 'name' => string 'bill' (length=4) 'weight' => int 110 'height' => int 190 4 => array (size=4) 'id' => int 5 'name' => string 'linken' (length=6) 'weight' => int 80 'height' => int 200 5 => array (size=4) 'id' => int 6 'name' => string 'madana' (length=6) 'weight' => int 95 'height' => int 110 6 => array (size=4) 'id' => int 7 'name' => string 'jordan' (length=6) 'weight' => int 70 'height' => int 170 array (size=7) 0 => array (size=4) 'id' => int 4 'name' => string 'bill' (length=4) 'weight' => int 110 'height' => int 190 1 => array (size=4) 'id' => int 1 'name' => string 'fj' (length=2) 'weight' => int 100 'height' => int 180 2 => array (size=4) 'id' => int 3 'name' => string 'jerry' (length=5) 'weight' => int 120 'height' => int 156 3 => array (size=4) 'id' => int 7 'name' => string 'jordan' (length=6) 'weight' => int 70 'height' => int 170 4 => array (size=4) 'id' => int 5 'name' => string 'linken' (length=6) 'weight' => int 80 'height' => int 200 5 => array (size=4) 'id' => int 6 'name' => string 'madana' (length=6) 'weight' => int 95 'height' => int 110 6 => array (size=4) 'id' => int 2 'name' => string 'tom' (length=3) 'weight' => int 53 'height' => int 150 array (size=7) 0 => array (size=4) 'id' => int 2 'name' => string 'tom' (length=3) 'weight' => int 53 'height' => int 150 1 => array (size=4) 'id' => int 7 'name' => string 'jordan' (length=6) 'weight' => int 70 'height' => int 170 2 => array (size=4) 'id' => int 5 'name' => string 'linken' (length=6) 'weight' => int 80 'height' => int 200 3 => array (size=4) 'id' => int 6 'name' => string 'madana' (length=6) 'weight' => int 95 'height' => int 110 4 => array (size=4) 'id' => int 1 'name' => string 'fj' (length=2) 'weight' => int 100 'height' => int 180 5 => array (size=4) 'id' => int 4 'name' => string 'bill' (length=4) 'weight' => int 110 'height' => int 190 6 => array (size=4) 'id' => int 3 'name' => string 'jerry' (length=5) 'weight' => int 120 'height' => int 156
這裡的重點就是,先把要排序的key存到一個一維數組中,然後就可以使用array_multisort()這個函數,將數組按照key進行排序了,當然,這裡的排序你完全可以不適用array_multisort()這個函數,僅僅通過foreach遍歷也能達到這個效果,但是既然php開發者給我們提供了更好的辦法,我們就可以省去不必要的麻煩了。
轉自:https://www.cnblogs.com/tdalcn/p/6420055.html
相關推薦:
#以上是PHP二維數組排序 array_multisort的詳細內容。更多資訊請關注PHP中文網其他相關文章!

tomodifyDataNaphPsession,startTheSessionWithSession_start(),然後使用$ _sessionToset,修改,orremovevariables.1)startThesession.2)setthesession.2)使用$ _session.3)setormodifysessessvariables.3)emovervariableswithunset()

在PHP會話中可以存儲數組。 1.啟動會話,使用session_start()。 2.創建數組並存儲在$_SESSION中。 3.通過$_SESSION檢索數組。 4.優化會話數據以提升性能。

PHP會話垃圾回收通過概率機制觸發,清理過期會話數據。 1)配置文件中設置觸發概率和會話生命週期;2)可使用cron任務優化高負載應用;3)需平衡垃圾回收頻率與性能,避免數據丟失。

PHP中追踪用戶會話活動通過會話管理實現。 1)使用session_start()啟動會話。 2)通過$_SESSION數組存儲和訪問數據。 3)調用session_destroy()結束會話。會話追踪用於用戶行為分析、安全監控和性能優化。

利用數據庫存儲PHP會話數據可以提高性能和可擴展性。 1)配置MySQL存儲會話數據:在php.ini或PHP代碼中設置會話處理器。 2)實現自定義會話處理器:定義open、close、read、write等函數與數據庫交互。 3)優化和最佳實踐:使用索引、緩存、數據壓縮和分佈式存儲來提升性能。

phpsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIdStoredInAcookie.here'showtomanageThemeffectionaly:1)startAsessionWithSessionWwithSession_start()和stordoredAtain $ _session.2)

在PHP中,遍歷會話數據可以通過以下步驟實現:1.使用session_start()啟動會話。 2.通過foreach循環遍歷$_SESSION數組中的所有鍵值對。 3.處理複雜數據結構時,使用is_array()或is_object()函數,並用print_r()輸出詳細信息。 4.優化遍歷時,可採用分頁處理,避免一次性處理大量數據。這將幫助你在實際項目中更有效地管理和使用PHP會話數據。

會話通過服務器端的狀態管理機制實現用戶認證。 1)會話創建並生成唯一ID,2)ID通過cookies傳遞,3)服務器存儲並通過ID訪問會話數據,4)實現用戶認證和狀態管理,提升應用安全性和用戶體驗。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!