PHP一維數組排序方法

來源:互聯網
上載者:User

   不管在現實生活中還是程式世界裡,順序總是很重要——真不敢想象一個沒有順序的世界會什麼樣子!PHP數組也不例外。PHP提供了四組針對PHP數組進行排序的函數,前三種都是針對一維數組的,我們先說這三種,第四種對多維陣列的排序在下一篇文章中說,那個有點複雜。

  第一組 :sort 和 rsort ,按照PHP數組索引值的順序asc和逆序desc進行排序,同時破壞原來數組的索引關係——其實是刪除索引之後重建立立從0開始的數字索引。看一下常式:

<?php$a = array("a"=>1,2);sort($a);var_dump($a); rsort($a);var_dump($a);?>

  看一下第一個輸出結果,第一個輸出:

  array(2) {

  [0]=>

  int(1)

  [1]=>

  int(2)

  }

  第二個輸出:

  array(2) {

  [0]=>

  int(5)

  [1]=>

  int(4)

  }

  發現沒有我們原來定義的索引a哪裡去了?哪裡去了?可以肯定的說是被他們無情的刪除了,你要是對原來的索引關係並不在意的話,可以使用他們!

  第二組函數:asort 和 arsort ,這兩個函數就比較厲害一點了,只要他們可以保留數組原有的索引關係,把上例的sort 和 rsort 分別用這兩個函數替換一下,看運行結果:

  array(2) {

  ["a"]=>

  int(1)

  [0]=>

  int(2)

  }

  array(2) {

  [0]=>

  int(2)

  ["a"]=>

  int(1)

  }

  這個一看就明白的,不用說了吧!

  第三組PHP數組排序函數:krsort 和 ksort 這兩個不同於以上兩組,這兩函數是對鍵名進行排序的,大家可以把上例的函數替換成這兩個,看看具體運行結果,這裡也不說了,不然這個文章寫的就太長了,怕有些兄弟沒有耐心看到本文的重點,雖然重點就在下邊!

  通過自訂函數對PHP數組進行排序,有三個函數分別是:

  uasort 通過自訂函數對PHP數組的索引值進行排序,並且保留原來的索引關係。

  uksort 通過自訂函數對PHP數組的鍵名進行排序,並且保留原來的索引關係。

  usort通過自訂函數對PHP數組的索引值進行排序,並且刪除原來的索引關係,從零開始建立新的索引。

  這個地方當然需要一個例子:

<!--p//首先頂一個函數,這個函數需要接受兩個參數,並且傳回值是一定的//第一個參數等於第二個參數的時候返回0,小於的時候返回-1,大於返回1 function cmp($a,$b){ $a+=1; $b+=3;//改變這些值之後進行比較  if($a==$b) return 0; return ($a&lt;$b)?-1:1;} $a =array(1,4,3,5);uasort($a,'cmp');var_dump($a);-->

  輸出結果:

  array(4) {

  [0]=>

  int(1)

  [3]=>

  int(5)

  [1]=>

  int(4)

  [2]=>

  int(3)

  }

  ,呵呵……是不是比不排序還亂呢?我們這裡只是示範了使用的方法而已,具體你用到的時候自己搞吧!你要是不對這些數值進行操作之後再比較,例如我們這裡:

  $a+=1;

  $b+=3;//改變這些值之後進行比較

  那麼你還不如直接用sort呢是不是?

  其他兩個跟這個差不多就不說了,隨後戰地會對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.