Heim >Backend-Entwicklung >PHP-Tutorial >php 数组排序的例子(不用内置函数)

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

WBOY
WBOYOriginal
2016-07-25 09:04:061325Durchsuche
  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数组排序方法大全



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn