• 微信号
  • 微信号
目录

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); 
?>

运行结果

上一篇: 数组的基本函数

下一篇: 数组排序