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

PHP一維數組排序方法

編輯:關於PHP編程

       不管在現實生活中還是程序世界裡,順序總是很重要——真不敢想象一個沒有順序的世界會什麼樣子!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針對多維數組進行排序做一些實驗,然後把結果和過程告訴大家,稍等啊!

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