Maison >développement back-end >tutoriel php >php 数组排序的例子(不用内置函数)

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

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



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn