>백엔드 개발 >PHP 튜토리얼 >PHP 배열 정렬의 예(내장 함수 없음)

PHP 배열 정렬의 예(내장 함수 없음)

WBOY
WBOY원래의
2016-07-25 09:04:061325검색
  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数组排序方法大全



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.