• 微信号
目录

php基础

您当前的位置:首页 > 我的笔记 > php基础>数组元素查找

数组元素查找

在程序开发中,经常需要在数组中查找特定的元素,例如,在一个数组中查找是否包含一个数组8.在数组中常用的查找的方法有顺序查找法和二分查找法。

1.顺序查找法

顺序查找法就是按照数组中的元素排列序号,从前往后一个一个查,如果找到怎返回当前元素所在下标

通过定义一个函数serch()函数来顺序查找数组是否含有数组8.

案例

<?php
    $arr=array(1,6,5,3,9,8,7);
    function search(&$arr,$find){
        for($i=1; $i<count($arr); $i++){
            if($find==$arr[$i]){
                echo "找到了,下标为".$i;
                $flag=true;
            }
        }
        if(!$flag){
            echo "查无此数";
        }
    }
    echo search($arr,10);
?>

运行结果

陵小宇博客数组元素查找-顺序查找法

2.二分查找法

二分查找法就是每次将指定元素和数组中间的元素进行比较,从而排除掉其中一半的元素,依次类推,继续进行查找,这样的查找方式是非常高效的,需要注意的是二分查找法只能由于排序后的数组。

案例

<?php
    function binarySearch(&$arr,$find,$start,$end){
        if($start>$end){ //当开始下标大于结束下标时,说明找不到这个数
            echo "找不到该数";
            return false;
        }
        $mid=round(($start+$end)/2); //获得中间元素的下标
        if($find>$arr[$mid]){ //如果查找数值大于中间数组,则下向右查找
            binarySearch($arr,$find,$mid+1,$end);
        }else if($find<$arr[$mid]){ //如果查找数值小宇中间数组,则下向左查找
            binarySearch($arr,$find,$start,$mid-1);
        }
        else{
            echo "找到这个数,下标为".$mid;
        }
    }
    $arr=array(2,6,7,9,10);
    echo binarySearch($arr,7,0,count($arr)-1);
?>

运行结果

陵小宇博客数组元素查找-顺序查找法