文档详情

PHP笔记_6(数组查询多维数组).doc

发布:2017-06-04约1.66千字共3页下载文档
文本预览下载声明
查找 1、顺序查找 function orderSearch $myarr,$findValue for $i 0; $i count $myarr ;$i++ if $findValue $myarr[$i] echo 找到了$myarr[$i]数,下标为$i; $arr array 11,0,99,22,-1 ; orderSearch $arr,-1 ; 以上的代码是没有经过优化的代码,只要数组中存在要找的数,都会打出的 优化后的代码如下: function orderSearch $myarr,$findValue $flag false;//定义一个标记,并设置默认的值为false for $i 0; $i count $myarr ;$i++ if $findValue $myarr[$i] echo 找到了$myarr[$i]数,下标为$i; $flag true;//如果找到了,标记就置为true break;//该句代码的作用是:只要找到一个就可以,然后终止循环 if !$flag echo没有找到要找的数$findValue; $arr array 11,0,99,22,-1 ; orderSearch $arr,1 ; 2、二分查找(必须掌握) 使用二分查找有一个重要的前提:该数组本身已经是一个有序的数字,如果该数组不是有序的,则必须先排序在进行查找。 核心代码: function dinarySearch $myarr,$findValue,$leftIndex,$rightIndex //$leftIndex数组左边下标,$rightIndex数组右边下标 if $leftIndex $rightIndex //如果没这个条件可能会出现死循环 echo 找不到.$findValue.这个数; return; $middleIndex round $leftIndex + $rightIndex /2 ;//数组中间的下标 if $findValue $myarr[$middleIndex] //如果要找数大于数组中间元素的值,则就在右边找 dinarySearch $myarr,$findValue,$middleIndex+1,$rightIndex ;//递归 else if $findValue $myarr[$middleIndex] //如果要找数小于数组中间元素的值,则就在左边找 dinarySearch $myarr,$findValue,$leftIndex,$middleIndex-1 ;//递归 else if $findValue $myarr[$middleIndex] //如果要找数等于数组中间元素的值,则找到这个数 echo 找到了$myarr[$middleIndex]这个数,下标为$middleIndex; $arr array 11,13,99,122,134 ; dinarySearch $arr,100,0,count $arr -1 ; 多维数组 二维数组的遍历: $arr array array 0,0,0,0,0,0 , array 0,0,1,0,0,0 , array 0,2,0,3,0,0 , array 0,0,0,0,0,0 ; for $i 0; $i count $arr ;$i++ for $j 0; $j count $arr[$i] ; $j++ echo nbsp;.$arr[$i][$j]; if $j count $arr[$i] -1 // 其实count $arr[$i]在这里表示的是一维数组 echo ; 【注释:如果一个函数要返回多个值,可以将其多个返回值放在一个数组中,然后将这个数组返回就可以】 练习题:矩阵的转置
显示全部
相似文档