• PHP常用函数(一):数组常用函数


    1、list()

      list() 和 array() 一样,不是一个函数,而是一个语言结构,作用是为一组变量赋值。

       PHP手册中的介绍

        

      使用详情 

    <?php
    
    //假设现在想为$a $b $c三个变量赋值,采用info数组中的内容
    
    $info = ['this is a','this is b','this is c'];
    list($a,$b,$c) = $info;
    
    print<<<EOT
    $a
    <br>
    $b
    <br>
    $c
    <br>
    EOT;

      运行结果

      

    2、each()  

      

    //实例代码 遍历$arr
    <?php
        $arr = ['a'=>'this is a','b'=>'this is b','c'=>'this is c'];
    
        while($tmp = each($arr))
        {
            echo $tmp['key'].':'.$tmp['value'].'<br>';
        }

      运行结果:

      

    3、数组指针操作

    • current()
    • key()
    • next()
    • prev()
    • end()
    • reset()
    <?php
    /*
    1 current();  //读取指针位置的内容
    2 key();      //读取当前指针指向内容的索引值
    3 next();     //将数组中的内部指针指向下一单元
    4 prev();     //将数组内部指针倒回一位
    5 end();      //将数组内部指针指向最后一个元素
    6 reset();    //将目前指针指向第一个索引位置
    */
    
    $info = [
        'a' => 'this is a',
        'b' => 'this is b',
        'c' => 'this is c',
        'd' => 'this is d'
    ];
    
    echo key($info).':'.current($info).'<br>';
    
    next($info);
    echo key($info).':'.current($info).'<br>';
    
    end($info);
    echo key($info).':'.current($info).'<br>';
    
    reset($info);
    echo key($info).':'.current($info).'<br>';

      运行结果:

      

    4、键值操作函数

    <?php
    
    $info = [
        'a' => 'apple',
        'b' => 'blog',
        'c' => 'cat',
        'd' => 'dog'
    ];
    
    echo 'keys:<br>';
    //输出info数组的所有键
    var_dump(array_keys($info));
    echo '<br>';
    echo 'values:<br>';
    //输出info数组的所有值
    var_dump(array_values($info));
    echo '<br>';
    
    //转换info数组 键值互换
    echo 'flips:<br>';
    var_dump(array_flip($info));
    echo '<br>';
    
    //搜索apple
    echo 'search:<br>';
    echo 'apple key is :'.array_search('apple',$info);
    echo '<br>';
    
    //元素翻转
    echo 'reverse:<br>';
    var_dump(array_reverse($info));
    echo '<br>';
    
    //检查元素
    echo 'in?<br>';
    echo 'blog is in $info? '.var_dump(in_array('blog',$info));
    echo '<br>';
    
    //检查键
    echo 'key in?<br>';
    echo 'b is in $info? '.var_dump(array_key_exists('b',$info));
    echo '<br>';
    
    //统计值的出现次数
    $info[] = 'blog';
    $info[] = 'blog';
    echo 'value count<br>';
    var_dump(array_count_values($info));
    echo '<br>';
    
    //删除重复的值
    echo 'before unique<br>';
    var_dump($info);
    echo '<br>after unique<br>';
    var_dump(array_unique($info));

      运行结果:

     5、回调函数 

      示例数组:

    $info = [
        'a' => 'apple',
        'b' => 'blog',
        'c' => 'cat',
        'd' => 'dog'
    ];

      array_filter();

      PHP手册参考:

      

    //array_filter();
    
    //不使用flag
    $filter_arr = array_filter($info,function($value){
        return strlen($value) == 3;
    });
    var_dump($filter_arr);
    echo '<br>';
    //使用flag
    $filter_arr = array_filter($info,function($key){
        return in_array($key,['a','c']);
    },ARRAY_FILTER_USE_KEY);
    var_dump($filter_arr);
    echo '<br>';
    
    $filter_arr = array_filter($info,function($value,$key){
        return in_array($key,['a','c']) && $value == 'apple';
    },ARRAY_FILTER_USE_BOTH);
    var_dump($filter_arr);
    echo '<br>';

      输出结果:

      array_walk();

      PHP手册参考:

      

    //array_walk();
    
    //不使用 userdata
    array_walk($info,function($value,$key){
        echo "$key:$value   ";
    });
    echo "<br>";
    
    //使用 userdata
    array_walk($info,function(&$value,$key,$userdata){
        $value = $userdata.'-'.$value;
    },'php');
    var_dump($info);
    echo "<br>";

      输出结果:

      array_map();

      PHP手册参考:

      

    //array_map();
    //单个数组
    array_map(function($n){
        echo "$n  ";
    },$info);
    echo "<br>";
    //多个数组
    $info_2 = [
        'e' => 'egg',
        'f' => 'filco',
        'g' => 'good'
    ];
    array_map(function($n1,$n2){
        echo "1:$n1-2:$n2  ";
    },$info,$info_2);
    echo '<br>';

      运行结果:

      

     6、数组分割


      array_slice()

      PHP手册参考

      

      array_splice()

      PHP手册参考:

      

      array_chunk()

       PHP手册:

      

      

      测试代码:

    <?php
    $info = [
        'a' => 'apple',
        'b' => 'blog',
        'c' => 'cat',
        'd' => 'dog'
    ];
    
    //array_slice()
    echo 'array_slice:<br>';
    print_r(array_slice($info,0,3));
    echo '<br><hr>';
    
    //array_splice();
    echo 'array_splice:<br>';
    echo '原数组:<br>';
    print_r($info);
    echo '<br>';
    //替换掉前两位
    $tmp = array_splice($info,0,2,['king','queen']);
    echo '替换后的数组:<br>';
    print_r($info);
    echo '<br>';
    echo '替换掉数组:<br>';
    print_r($tmp);
    echo '<br><hr>';
    
    //恢复原数组
    $info = [
        'a' => 'apple',
        'b' => 'blog',
        'c' => 'cat',
        'd' => 'dog'
    ];
    //array_chunk();
    echo 'array_splice:<br>';
    echo '替换后的数组:<br>';
    $tmp = array_chunk($info,2);
    var_dump($tmp);

      运行结果:

    7、数组运算

       测试代码:

      

    <?php
    $info = [
        'a' => 'apple',
        'b' => 'blog',
        'c' => 'cat',
        'd' => 'dog'
    ];
    
    $info_2 = [
        'e' => 'apple',
        'f' => 'egg',
        'g' => 'java',
        'h' => 'cat'
    ];
    
    $info_num = [120,10,1];
    
    //array_sum
    echo 'array_sum:<br>';
    echo array_sum($info_num);
    echo '<br>';
    echo array_sum($info); //只对元素中的数值进行求和
    echo '<br><hr>';
    
    //array_merge
    echo 'array_merge:<br>';
    print_r(array_merge($info,$info_2,$info_num));
    echo '<br><hr>';
    
    //array_diff - 返回在info中但不在其他arr中的值
    echo 'array_diff:<br>';
    print_r(array_diff($info,$info_2));
    echo '<br><hr>';
    
    //array_intersect - 返回在info中也在在其他arr中的值
    echo 'array_intersect:<br>';
    print_r(array_intersect($info,$info_2));
    echo '<br><hr>';

      运行结果:

    8、数组的栈和队列操作

    9、数组的排序操作

    10、其他常用函数 

  • 相关阅读:
    java多线程api
    java多线程
    java代理
    java程序员常用的linux命令
    java泛型
    java反射
    日期和时间
    java集合
    Nodejs mac版安装
    for in、each; for 、forEach、map
  • 原文地址:https://www.cnblogs.com/zoujiejun96/p/9616451.html
Copyright © 2020-2023  润新知