php常见的数组从小到大排序算法和函数

作者:admin 发布时间:2020-09-13 00:08:52 浏览:775次
作为phper,一般接触算法的编程不多。 但基本的排序算法还是应该掌握。 毕竟算法作为程序的核心,算法的好坏决定了程序的质量。

1、冒泡排序

原理:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 第一次排出最大的数,第二次排出第二大的, $arr=[5,3,5,7,1,9]; function bubblesearch($arr){ $len = count($arr); for($i=1;$i<$len;$i++){ for($j=0;$j

2、自带的排序函数

sort() 函数用于对数组单元从低到高进行排序。 rsort() 函数用于对数组单元从高到低进行排序。 asort() 函数用于对数组单元从低到高进行排序并保持索引关系。 arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。 ksort() 函数用于对数组单元按照键名从低到高进行排序。 krsort() 函数用于对数组单元按照键名从高到低进行排序 usort(array,function($a,$b){ if($a>$b){ return 1; }else{ return -1; } }) array_multisort() 这个函数可以对多个PHP数组进行排序,排序结果是所有的数组都按第一个数组的顺序进行排列

3、array_multisort() 实际用法,实现多维数据按照多个字段排序

例子:按照年龄从大到小的顺序排列,如果年龄相同就按照名字的顺序排序 $array[] = array("age"=>20,"name"=>"li"); $array[] = array("age"=>21,"name"=>"ai"); $array[] = array("age"=>20,"name"=>"ci"); $array[] = array("age"=>22,"name"=>"di"); foreach ($array as $key=>$value){ $age[$key] = $value['age']; $name[$key] = $value['name']; } array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array); print_r($array);

扩展学习

二分查找算法

/* php 二分查找 在$a数组里查找$x的位置 $a必须是一个以升序排序后的数组 */ function binsearch($find,$arr){ $count = count($arr); $start = 0; $end = $count-1; while($start<=$end){ $middle = intval(($start+$end)/2); if($arr[$middle]>$find){ $end = $middle-1; }elseif($arr[$middle]<$find){ $start = $middle+1; }else{ return $middle; } } return -1; }

如需转载请保留本文出处: https://zhe94.com/776.html

上一篇:HTML5 Canvas全屏的星光闪烁3D视差特效代码
下一篇:PHP递归算法实现无限级分类遍历代码分享