php 數組排序(升序、降序及相關問題)

來源:互聯網
上載者:User
  1. $a = array(4,"37",3,100,0,-5);
  2. sort($a);
  3. for ($i=0; $i<6; ++$i){
  4. echo $a[$i]." ";
  5. }
  6. echo "
    ";
  7. sort($a,SORT_STRING);
  8. for ($i=0; $i<6; ++$i){
  9. echo $a[$i]." ";
  10. }
  11. echo "
    ";
  12. ?>
複製代碼

輸出結果:-5 0 3 4 37 100 -5 0 100 3 37 4

降序排序:rsort(array, [sort type]) 參數用法與sort函數相同。

關聯陣列排序: 函數:asort(array, [sort type]) 說明:根據關聯陣列的元素值進行升序排序。參數使用見上面的sort函數。

函數:ksort(array, [sort type]) 說明:根據關聯陣列的關鍵字進行升序排序。參數使用見上面的sort函數。

  1. $a = array(

  2. "good" => "bad",
  3. "right" => "wrong",
  4. "boy" => "girl");

  5. echo "value sort
    ";

  6. asort($a);
  7. foreach($a as $key => $value){
  8. echo "$key : $value
    ";
  9. }

  10. echo "
    key sort
    ";

  11. ksort($a);
  12. foreach($a as $key => $value){
  13. echo "$key : $value
    ";
  14. }
  15. ?>

複製代碼

輸出結果: value sort good : bad boy : girl right : wrong

key sort boy : girl good : bad right : wrong 降序排序: arsort(array, [sort type]) 與 asort對應 krsort(array, [sort type]) 與 ksort對應

快速建立數組的函數range()

比如range()函數可以快速建立從1到9的數字數組:

  1. $numbers=range(1,9);
  2. echo $numbers[1];
  3. ?>
複製代碼

當然,使用range(9,1)則建立了9到1的數字數組。同時,range()還可以建立從a到z 的字元數組:

  1. $numbers=range(a,z);
  2. foreach ($numbers as $mychrs)
  3. echo $mychrs." ";
  4. ?>
複製代碼

使用字元數組時注意大小寫,比如range(A,z)和range(a,Z)是不一樣的。range()函數還具有第三個參數,該參數的作用是設定步長,比如range(1,9,3)建立的數組元素是:1、4、7。常見PHP數組排序一般數組中的各元素均以字元或數字表現的,所以可對數組元素進行升序排列,該功能函數為sort()。比如:

  1. $people=array('name','sex','nation','birth');
  2. foreach ($people as $mychrs)
  3. echo $mychrs." ";
  4. sort($people);
  5. echo "
    ---排序後---
    ";
  6. foreach ($people as $mychrs)
  7. echo $mychrs." ";
  8. ?>
複製代碼

升序排序後的數組元素顯示為 birth name nation sex,當然,sort()函數是區分字母大小寫(字母從大到小的順序是:A…Z…a…z)

Sort()函數還具有第二參數,用來說明PHP數組排序升序的規則是用來比較數字還是字串的。比如:

  1. echo "---按數字升序排序---
    ";
  2. $num2=array('26','3',);
  3. sort($num2,SORT_NUMERIC);
  4. foreach ($num2 as $mychrs)
  5. echo $mychrs." ";
  6. echo "
    ---按字元升序排序---
    ";
  7. $num3=array('26','3');
  8. sort($num3,SORT_STRING);
  9. foreach ($num3 as $mychrs)
  10. echo $mychrs." ";
  11. ?>
複製代碼

SORT_NUMERIC和SORT_STRING用來聲明按數字或字元的升序排列。如果按照數字升序排列是:3,26;但如果按照字元升序排列則是:26,3了。PHP中除了升序函數以外,還有降序或稱反向排列的函數,就是rsort()函數,比如:$num1=range(1,9);rsort($num1);這裡其實就相當於range(9,1)。

有關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.