欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 数组排序的例子(不用内置函数)

程序员文章站 2022-05-25 20:33:47
...
  1. function arraysort($data, $order = 'asc') {
  2. //asc升序 desc降序
  3. $temp = array ();
  4. $count = count ( $data );
  5. if ($count return false; //传入的数据不正确
  6. if ($order == 'asc') {
  7. for($i = 0; $i for($j = $count - 1; $j > $i; $j --) {
  8. if ($data [$j] //交换两个数据的位置
  9. $temp = $data [$j];
  10. $data [$j] = $data [$j - 1];
  11. $data [$j - 1] = $temp;
  12. }
  13. }
  14. }
  15. } else {
  16. for($i = 0; $i for($j = $count - 1; $j > $i; $j --) {
  17. if ($data [$j] > $data [$j - 1]) {
  18. $temp = $data [$j];
  19. $data [$j] = $data [$j - 1];
  20. $data [$j - 1] = $temp;
  21. }
  22. }
  23. }
  24. }
  25. return $data;
  26. }
  27. $data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
  28. var_dump ( arraysort ( $data ) ); //升序
  29. echo ('
    ');
  30. var_dump ( arraysort ( $data ,'desc') );//降序
复制代码

2、插入排序法

  1. function arraysort3($data, $order = 'asc') {
  2. //目前只做升序排列
  3. $count = count ( $data );
  4. for($i = 1; $i $temp = $data [$i];
  5. $j = $i - 1;
  6. while ( $data [$j] > $temp ) {
  7. $data [$j + 1] = $data [$j];
  8. $data [$j] = $temp;
  9. $j --;//为什么要递减:从高位逐位判断
  10. }
  11. }
  12. return $data;
  13. }
  14. $data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 );
  15. var_dump ( arraysort3 ( $data ) ); //升序
  16. ?>
复制代码

以上代码介绍了php 数组排序的二个例子,分别用了冒泡法与插入法,希望对大家有所帮助。 脚本学堂,专心为您每一天。

>>> 更多内容,请查看 php数组排序方法大全