一、数组的删除——unset()函数
示例如下:
<?php //定义二维数组 echo '这是一个二维数组<br>'; $array1 = array( array('username'=>'Aka','address'=>'湖南衡阳', 'age'=>20,'major'=>'IT','Email'=>"12345678@qq.com"), array('username'=>'Wunder','address'=>'LEC', 'age'=>23,'major'=>'IT','Email'=>"Wunder@qq.com"), array('username'=>'Caps','address'=>'LCS', 'age'=>21,'major'=>'IT','Email'=>"Caps@qq.com"), array('username'=>'Facker','address'=>'LCK', 'age'=>22,'major'=>'IT','Email'=>"Facker@qq.com") ); echo '<pre>'; print_r($array1); echo '<hr/>'; echo '以下是删除元素后的数组结构','<br>'; //使用unset()函数完成数据的删除 unset($array1[2]);//删除建名为2的数组元素 echo '<pre>'; print_r($array1); echo '</pre>';
unset()函数可以删除指定键名的元素,也可以删除整个数组
二、数组操作符
三、数组的查找
1.顺序查找
<?php function search($arr,$find){ foreach($arr as $k => $v){ if($find == $v) return "{$find}在数组中的键名为:$k"; } return '查找失败'; } $array = [1,2,3,4,5,6,7,8]; echo search($array,4);
2.二分查找(是一种针对有序数组的一种查找方法,查询效率高)
<?php //递归二分查找(又称折半查找) function binarySearch($arr,$find,$left,$right){ static $index = -1; if($left>$right){ //返回-1说明查找失败 return $index; } //向下取整 $mid = floor(($left+$right)/2); //要找的值小于$arr[$mid]的值,说明在数组的左边 if($find < $arr[$mid]){ //如果$middle不-1,则挑不出去,会一直递归下去 $right = $mid-1; binarySearch($arr,$find,$left,$right); } //要找的值大于$arr[$mid]的值,说明在数组的右边 elseif($find > $arr[$mid]){ $left = $mid+1; binarySearch($arr,$find,$left,$right); }else{ $index = $mid; } return $index; } $array = [1,5,8,12,21,56,76,99]; //获取数组的长度 $length= count($array); $end = $length-1; echo binarySearch($array,990,0,$end),'<br>'; echo binarySearch($array,99,0,$end),'<br>';