PHP基础之数组方法

PHP数组

数组的基本使用

数组的输出

  • 数组的输出
    • var_dump()
    • print_r()
<?php
    $word= ['泥萌', '蜗萌', '塔萌'];
    echo '<pre>';
    var_dump($word);
    print_r($word);
    echo '</pre>';
?>

数组的添加与删除

<?php
    $word= ['泥萌', '蜗萌', '塔萌'];
    # 添加
    $word[4]= '亲萌';
    echo '<pre>';
    print_r($word);
    echo '</pre>';
    # 删除
    unset($word[2]);
    echo '<pre>';
    print_r($word);
    echo '</pre>';
?>

数组操作符

<?php
    $name1= ["a"=> "泥萌", "b"=> "蜗萌", "c"=> "塔萌"];
    $name2= ["a"=> "Sunny", "b"=> "Jerry"];
    $name3= $name1+ $name2;
    print_r($name3);
    echo '<br>';
    $name3= $name2+ $name1;
    print_r($name3);
?>

数组的常见操作

数组遍历

数组指针

  • 数组指针
    • mixed current(array &$array) 获取数组中当前元素的值,如果内部指针超出数组的末端,则返回false
    • mixed key(array &$array) 获取当前元素的下标,即键名
    • mixed next(array &$array) 将数组的内部指针向前移动一位
    • mixed prev(array &$array) 将数组的内部指针倒回一位
    • mixed end(array &$array) 将数组的内部指针指向最后一个元素
    • mixed reset(array &$array) 重置指针,即将数组的指针指向第一个元素
<?php
    # 数组的遍历
    $word= ["a"=> "泥萌", "b"=> "蜗萌", "c"=> "塔萌"];
    while(current($word)){
        echo key($word);
        echo "=>";
        echo current($word);
        echo "<br>";
        next($word);
    }
?>

foreach数组的遍历

  • foreach数组的遍历
    • 无键名遍历
    • 键值对遍历
<?php
    # 数组的遍历
    $word= ["Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    foreach($word as $v){
        echo "{$v}<br>";
    }
    foreach($word as $k=>$v){
        echo "{$k}:{$v}<br>";
    }
?>

each()函数指针的移动

array each(array &$array);
<?php
    # 数组的遍历
    $word= ["a"=> "泥萌", "b"=> "蜗萌", "c"=> "塔萌"];
    echo "<pre>";
    print_r(each($word));
    print_r(each($word));
    print_r(each($word));
    echo "</pre>";
?>

list()`语言结构

  • list()语言结构
    • 将索引数组中的值赋给一些变量
<?php
    $name= ["泥萌", "蜗萌", "塔萌"];
    list($Sunny, $Tomy, $Jerry)= $name;
    echo $Sunny;
    echo $Tomy;
    echo $Jerry;
?>

关于each() list() while实现数组的遍历

<?php
    # 数组的遍历
    $word= ["Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    while(list($key, $value)= each($word)){
        echo "{$key}=>{$value}<br>";
    }
?>

数组排序

冒泡排序

<?php
    function bubbleSort($arr){
        $temp= 0;
        $len= count($arr);
        for($i=0; $i<$len-1; $i++){
            for($j=0; $j<$len-1-$i; $j++){
                if($arr[$j]> $arr[$j+1]){
                    $temp= $arr[$j];
                    $arr[$j]= $arr[$j+1];
                    $arr[$j+1]= $temp;
                }
            }
        }
        return $arr;
    }
    $arr= [15, 24, 35, 29, 19, 2];
    print_r(bubbleSort($arr));
?>

数组元素查找

顺序查找法

<?php
    function search(&$arr, $findVal){
        $flag= false;
        for($i=0; $i<count($arr); $i++){
            if($arr[$i]== $findVal){
                echo '哈哈!原来你在这儿啊!';
                $flag= true;
            }
        }
        if(!$flag){
            echo '哎?你在哪儿呢?';
        }
    }
    $arr= [2, 3, 4, 5, 6, 7, 8, 9];
    search($arr, 1);
?>

二分查找法

<?php
    function binarySearch(&$arr, $findVal, $start, $end){
        if($start> $end){
            echo '哎?你在哪儿呢?';
            return false;
        }
        $mid= round(($start+ $end)/2);
        if($findVal< $arr[$mid]){
            binarySearch($arr, $findVal, $start, $mid- 1);
        }elseif($findVal> $arr[$mid]){
            binarySearch($arr, $findVal, $mid+ 1, $end);
        }else{
            echo "哦!原来你在{$mid}这里啊!";
        }
    }
    $arr= [2, 3, 4, 5, 6, 7, 8, 9];
    binarySearch($arr, 6, 0, count($arr)-1);
?>

数组的常用函数

基本函数

is_array() 判断一个变量是否是数组

<?php
    $word= ["Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    var_dump(is_array($word));
?>

count() 计算数组中元素的个数

<?php
    $word= ["Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    var_dump(count($word));
?>

array_unique() 移除数组中的重复元素

<?php
    $word= ["Marry"=> "塔萌", "Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    print_r(array_search('塔萌', $word));
?>

键值对的相关函数

array_search() 获取数组中元素对应的键名

<?php
    $word= ["Jerry"=> "塔萌", "Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    echo array_search('塔萌', $word);
?>

array_keys() 获取数组中元素对应的键名,可以返回所有匹配的键名

<?php
    $word= ["Marry"=> "塔萌", "Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌", "Jack"=>25, "Rose"=>'25'];
    print_r(array_keys($word));
    echo '<br>';
    print_r(array_keys($word, '塔萌'));
    echo '<br>';
    print_r(array_keys($word, '25', false));    // 不依赖类型
    echo '<br>';
    print_r(array_keys($word, '25', true));    // 依赖类型
?>

排序函数 sort()

  • sort() 对数组进行升序排列
    • SORT_REGULAR 默认值,将自动识别数组元素的类型进行排序
    • SORT_NUMERIC 用于数字元素的排序
    • SORT_STRING 用于字符串元素的排序
    • SORT_LOCALE_STRING 根据当前的locale设置来把元素当作字符串比较
<?php
    $word= [25, 18, 34, 14, 78, 77, 28];
    sort($word, SORT_REGULAR);
    print_r($word);
?>

合并函数 array_merge()

  • array_merge() 合并一个或多个数组
<?php
    $word= ["Marry"=> "塔萌", "Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    $tiger= ["Jack"=>25, "Rose"=>'25'];
    $res= array_merge($word, $tiger);
    echo '<pre>';
    print_r($res);
    echo '</pre>';
?>

拆分函数 array_chunk()

  • array_chunk() 将一个数组分割成多个数组
<?php
    $word= ["Marry"=> "塔萌", "Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    # 索引下标
    echo '<pre>';
    print_r(array_chunk($word, 2));
    echo '</pre>';
    # 关联下标
    echo '<pre>';
    print_r(array_chunk($word, 2, true));
    echo '</pre>';
?>

随机函数 array_rand()

  • array_rand() 从数组中随机取出一个或多个元素
<?php
    $word= ["Marry"=> "塔萌", "Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    # 随机取出一个值
    echo '<pre>';
    print_r(array_rand($word));
    echo '</pre>';
    # 随机取出两个值
    echo '<pre>';
    print_r(array_rand($word, 2));
    echo '</pre>';
?>

反相函数 array_reverse()

  • array_reverse() 返回一个元素顺序相反的数组
<?php
    $word= ["Marry"=> "塔萌", "Sunny"=> "泥萌", "Tomy"=> "蜗萌", "Jerry"=> "塔萌"];
    $res= array_reverse($word);
    echo '<pre>';
    print_r($res);
    echo '</pre>';
?>
原文地址:https://www.cnblogs.com/SharkJiao/p/13972203.html