1、查找算法php
一、順序查找(一個一個查,效率低,不用多說)html
二、二分查找算法
/* 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; }
2、排序算法數組
一、冒泡排序函數
冒泡排序 第一次排出最大的數,第二次排出第二大的, $arr=[5,3,5,7,1,9]; function bubblesearch($arr){ $len = count($arr); for($i=1;$i<$len;$i++){ for($j=0;$j<len-$i;$j++){ if($arr[$j+1]<$arr[j]){ $temp = $arr[$j+1]; $arr[j+1] = $arr[j]; $arr[j] = $temp; } } } }
二、自帶的排序函數spa
sort() 函數用於對數組單元從低到高進行排序。 rsort() 函數用於對數組單元從高到低進行排序。 asort() 函數用於對數組單元從低到高進行排序並保持索引關係。 arsort() 函數用於對數組單元從高到低進行排序並保持索引關係。 ksort() 函數用於對數組單元按照鍵名從低到高進行排序。 krsort() 函數用於對數組單元按照鍵名從高到低進行排序 usort(array,function($a,$b){ if($a>$b){ return 1; }else{ return -1; } })
array_multisort() 這個函數能夠對多個PHP數組進行排序,排序結果是全部的數組都按第一個數組的順序進行排列
三、array_multisort() 實際用法,實現多維數據按照多個字段排序code
例子:按照年齡從大到小的順序排列,若是年齡相同就按照名字的順序排序htm
$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);
本文參考:https://www.cnblogs.com/88phper/p/7825453.htmlblog