• 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>';
    ?>
    
  • 相关阅读:
    (转)CSS3全局实现所有元素的内边距和边框不增加
    (转载)常用的Mysql数据库操作语句大全
    100天搞定机器学习|day40-42 Tensorflow Keras识别猫狗
    《统计学习方法》极简笔记P2:感知机数学推导
    100天搞定机器学习|day39 Tensorflow Keras手写数字识别
    100天搞定机器学习|day38 反向传播算法推导
    100天搞定机器学习|day37 无公式理解反向传播算法之精髓
    100天搞定机器学习|Day36用有趣的方式解释梯度下降算法
    100天搞定机器学习|Day35 深度学习之神经网络的结构
    《统计学习方法》极简笔记P4:朴素贝叶斯公式推导
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/13972203.html
Copyright © 2020-2023  润新知