高手詳談PHP二維數組_PHP教程

來源:互聯網
上載者:User
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二維數組的介紹,希望對大家有協助。


http://www.bkjia.com/PHPjc/446530.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446530.htmlTechArticlePHP經過長時間的發展,很多使用者都很瞭解它了,上網收集了一些關於PHP二維數組的相關知識,這裡和大家一起分享一下,PHP本身是有一個多...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.