php 中的查找算法 和 排序方法(多字段排序)

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

相關文章
相關標籤/搜索