PHP数组(二)

一、数组的删除——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>';

    

原文地址:https://www.cnblogs.com/kaka6k66k/p/11798496.html