php 數組排序的例子(不用內建函數)

來源:互聯網
上載者:User
  1. function arraysort($data, $order = 'asc') {
  2. //asc升序 desc降序
  3. $temp = array ();
  4. $count = count ( $data );
  5. if ($count <= 0)
  6. return false; //傳入的資料不正確
  7. if ($order == 'asc') {
  8. for($i = 0; $i < $count; $i ++) {
  9. for($j = $count - 1; $j > $i; $j --) {
  10. if ($data [$j] < $data [$j - 1]) {
  11. //交換兩個資料的位置
  12. $temp = $data [$j];
  13. $data [$j] = $data [$j - 1];
  14. $data [$j - 1] = $temp;
  15. }
  16. }
  17. }
  18. } else {
  19. for($i = 0; $i < $count; $i ++) {
  20. for($j = $count - 1; $j > $i; $j --) {
  21. if ($data [$j] > $data [$j - 1]) {
  22. $temp = $data [$j];
  23. $data [$j] = $data [$j - 1];
  24. $data [$j - 1] = $temp;
  25. }
  26. }
  27. }
  28. }
  29. return $data;
  30. }
  31. $data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
  32. var_dump ( arraysort ( $data ) ); //升序
  33. echo ('
    ');
  34. var_dump ( arraysort ( $data ,'desc') );//降序
複製代碼

2、插入排序法

  1. function arraysort3($data, $order = 'asc') {
  2. //目前只做升序排列
  3. $count = count ( $data );
  4. for($i = 1; $i < $count; $i ++) {
  5. $temp = $data [$i];
  6. $j = $i - 1;
  7. while ( $data [$j] > $temp ) {
  8. $data [$j + 1] = $data [$j];
  9. $data [$j] = $temp;
  10. $j --;//為什麼要遞減:從高位逐位判斷
  11. }
  12. }
  13. return $data;
  14. }
  15. $data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
  16. var_dump ( arraysort3 ( $data ) ); //升序
  17. ?>
複製代碼

以上代碼介紹了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.