程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 高手詳談PHP二維數組

高手詳談PHP二維數組

編輯:關於PHP編程

PHP經過長時間的發展,很多用戶都很了解它了,上網收集了一些關於PHP二維數組的相關知識,這裡和大家一起分享一下,PHP本身是有一個多維數組排序的函數的。

  1. boolarray_multisort(array$ar1[,mixed$arg[,mixed$...[,array$...]]]) 

下面是手冊當中對於array_multisort函數的描述:

array_multisort()可以用來一次對多個數組進行排序,或者根據某一維或多維對多維數組進行排序。關聯(string)鍵名保持不變,但數字鍵名會被重新索引。輸入數組被當成一個表的列並以行來排序――這類似於SQL的ORDERBY子句的功能。第一個數組是要排序的主要數組。數組中的行(值)比較為相同的話就按照下一個輸入數組中相應值的大小來排序,依此類推。從手冊中看到,PHP本身的多維排序,是按照第一個數組進行排序,並且調整後面的順序。像這樣的數組:

  1. array('id'=>array(1,3,2),  
  2. 'data'=>array('a','c','b')) 

只要按照id進行多維排序,就可以了。但是很多時候,我們構造出的PHP二維數組是這樣的:

  1. array(  
  2. array('id'=>1,'data'=>'a'),  
  3. array('id'=>3,'data'=>'c'),  
  4. array('id'=>2,'data'=>'b')  
  5. ); 

數組的元素是按行排列的,需要按其中的一列進行排序。PHP好像也沒提供類似矩陣轉置的函數,所以不能直接使用array_multisort進行多維排序。不過只需要先把排序的列抽取出來,作為第一個參數傳給array_multisort即可。

  1. functionmulti_array_sort($multi_array,$sort_key,$sort=SORT_ASC){  
  2. if(is_array($multi_array)){  
  3. foreach($multi_arrayas$row_array){  
  4. if(is_array($row_array)){  
  5. $key_array[]=$row_array[$sort_key];  
  6. }else{  
  7. return-1;  
  8. }  
  9. }  
  10. }else{  
  11. return-1;  
  12. }  
  13. array_multisort($key_array,$sort,$multi_array);  
  14. return$multi_array;  
  15. }  

以上就是簡單的PHP二維數組的介紹,希望對大家有幫助。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved