美文网首页
php 数组和数组常用方法

php 数组和数组常用方法

作者: 暴躁程序员 | 来源:发表于2023-01-20 14:52 被阅读0次

    一、数组的种类

    1. 数值数组,以整数为下标,索引从 0 开始
    • 创建数组的方式一:array()
    $arr = array(1,2,3);
    
    print_r($arr); // 打印数组
    var_dump($arr); // 打印数组
    echo $arr[0]; // 打印数组第一项
    
    • 创建数组的方式二:[]
    $arr = [1,2,3]
    
    2.关联数组,以字符串为下标
    • 创建数组的方式一:array()
    $arr = array('username'=>'zhangsan','password'=>'123456');
    
    print_r($arr); // 打印数组
    var_dump($arr); // 打印数组
    echo $arr['username']; // 打印数组第一项
    
    • 创建数组的方式二:[]
    $arr = ['username'=>'zhangsan','password'=>'123456'];
    print_r($arr);
    

    二、数组遍历

    1. 数值数组遍历
    $arr = ['齐','楚','燕','韩','赵'];
    for ($i=0; $i <count($arr); $i++) { 
        echo $arr[$i] . '<br>';
    }
    
    1. 关联数组遍历
    $arr = ['qi'=>'齐','chu'=>'楚','yan'=>'燕','han'=>'韩','zhao'=>'赵'];
    foreach ($arr as $key => $value) {
       echo $key .'---'. $value . '<br>';
    }
    

    三、数组的增、删、改

    1. 增加
    array() 创建数组
    
    array_push(数组,单个或多个值) 将一个或多个元素插入数组的末尾
    array_unshift(数组,单个或多个值) 将一个或多个元素插入数组的开头
    
    array_splice(数组,开始索引,0,插入的数组) 在数组的指定位置插入另一个数组,返回空数组,改变原数组
    array_merge(单个或多个数组) 数组合并,关联数组在key相同时会覆盖
    array_merge_recursive(单个或多个数组) 数组合并,key相同时生成二维数组(递归)
    ... 拓展运算符实现数组合并,比如:$a=['a','b','c']; $b=[...$a,'c','d','e']; print_r($b);
    
    1. 删除(包括数组的过滤和去重)
    array_pop(数组)删除数组中最后一项,并返回删除的那一项的值,改变原数组
    array_shift(数组)删除数组中第一项,并返回删除的那一项的值,改变原数组
    array_slice(数组,开始索引,截取长度)截取数组片段,不改变原数组,返回截取的片段
    array_splice(数组,开始索引,截取长度)在数组的指定位置删除数组片段,返回删除的数组,改变原数组
    
    array_filter(数组,函数名称) 过滤符合条件的数组,只过滤value
    
    array_unique(数组) 删除数组中重复的值
    
    1. 修改
    array_splice(数组,开始索引,截取长度,插入的数组)在数组的指定位置先删除后插入,返回删除的片段,改变原数组
    array_replace(数组,单个多个数组)数值数组对应索引替换,关联数组如果key对应上则替换,否则追加,不处理二级数组
    array_replace_recursive()(数组,单个多个数组)数值数组对应索引替换,关联数组如果key对应上则替换,否则追加,会处理二级数组(递归)
    array_map(函数名称,单个或多个数组) 映射重构新数组,可传入多个数组,只重构value,可批量修改某些值
    

    四、数组查询

    count(数组) 获取数组的长度
    
    数组[key] 通过key获取value
    array_search(value,数组) 通过value获取key
    
    array_key_first(数组)获取数组的第一个key。
    array_key_last(数组)获取数组的最后一个key。
    array_keys(数组)以数组的方式返回数组中所有的key
    array_key_exists(key,数组)获取数组中是否存在某key,返回true或false
    
    in_array(value,数组) 判断数组中是否有某个value
    array_values()以数组的方式返回数组中所有的value
    
    array_sum() 返回所有值的和
    array_product()返回所有值的乘积
    

    五、数组排序

    sort(数组)对数组进行升序排列
    rsort(数组)对数组进行降序排列
    asort(数组)根据关联数组的值,对数组进行升序排列
    ksort(数组)根据关联数组的键,对数组进行升序排列
    arsort(数组)根据关联数组的值,对数组进行降序排列
    krsort(数组)根据关联数组的键,对数组进行降序排列
    

    六、数组比较

    可多个数组一起比较

    array_diff(数组1,数组2)比较数组,返回两个数组的差集(只比较value)。
    array_diff_key(数组1,数组2)比较数组,返回两个数组的差集(只比较key)。
    array_diff_assoc(数组1,数组2)比较数组,返回两个数组的差集(比较key和value)。
    array_diff_ukey(数组1,数组2,key比较函数)比较数组,返回两个数组的差集(只比较key,使用key的比较函数)。
    array_diff_uassoc(数组1,数组2,key比较函数)比较数组,返回两个数组的差集(比较key和value,使用key的比较函数)。
    
    array_udiff(数组1,数组2,key比较函数)比较数组,返回两个数组的差集(只比较value,使用key比较函数)。
    array_udiff_assoc(数组1,数组2,value比较函数)比较数组,返回两个数组的差集(比较key和value,使用内建函数比较key,使用用户自定义函数比较value)。
    array_udiff_uassoc(数组1,数组2,key比较函数,value数组)比较数组,返回两个数组的差集(比较key和value,使用两个用户自定义的key比较函数)。
    array_uintersect(数组1,数组2,key比较函数)比较数组,返回两个数组的交集(只比较value,使用key比较函数)。
    array_uintersect_assoc(数组1,数组2,value比较函数)比较数组,返回两个数组的交集(比较key和value,使用内建函数比较key,使用用户自定义函数比较value)。
    array_uintersect_uassoc(数组1,数组2,key比较函数,value比较函数)比较数组,返回两个数组的交集(比较key和value,使用两个用户自定义的key比较函数)。
    
    array_intersect(数组1,数组2)比较数组,返回两个数组的交集(只比较value)。
    array_intersect_assoc(数组1,数组2)比较数组,返回两个数组的交集(比较key和value)。
    array_intersect_key(数组1,数组2)比较数组,返回两个数组的交集(只比较key)。
    array_intersect_uassoc(数组1,数组2,key比较函数)比较数组,返回两个数组的交集(比较key和value,使用key的比较函数)。
    array_intersect_ukey(数组1,数组2,key比较函数)比较数组,返回两个数组的交集(只比较key,使用key的比较函数)。
    

    七、数组格式化

    array_reverse(数组) 数组反转
    array_flip(数组)keyvalue交换 
    array_reduce(数组,函数名称) 将数组的value通过函数处理,转化为字符串
    

    八、数组去重

    array_unique(数组) 删除数组中重复的值
    

    相关文章

      网友评论

          本文标题:php 数组和数组常用方法

          本文链接:https://www.haomeiwen.com/subject/nbkqhdtx.html