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

php中文网
发布: 2016-07-25 09:04:06
原创
1609人浏览过
  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数组排序方法大全



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号