博客列表 >数组的增删改查以及常用函数的使用

数组的增删改查以及常用函数的使用

xueblog9的进阶之旅
xueblog9的进阶之旅原创
2022年08月12日 22:32:13647浏览

数组

手工遍历

  1. key():当前键名
  2. current():当前值
  3. next():指针后移,几个next,后移几次,直到没有,值为0
  4. prev():指针前移
  5. reset():指针重置到第一个
  6. end():指针指向最后一个

自动遍历

  1. if条件判断遍历
  2. foreach遍历

解构遍历

  1. 索引数组解构,list(),直接list中的变量一一对应数组中的值
  2. 关联数组解构,list()中数组的键对应变量名,变量指向,对应关联的值,相当于二次传递
  3. extract():直接插入数组,直接用’$’+’键名’进行调用

二维数组遍历

  1. foreach+list进行遍历

数组函数

  1. array_values():将数组的值,取出来,组成一个新数组,键名会重置,格式:array_value(函数名)
  2. in_array():查询某个元素是否在这个数组中,格式:(‘值’,数组名),返回的是布尔值
  3. array_search():查询值在数组中的索引,(‘值’,数组名),返回索引,可以通过索引引用值
  4. array_unique():去重数组中的值,并返回新的数组
  5. count():数组值的计数,
  6. array_count_values():统计值出现的次数,可以对每个值计数,返回的也是一个数组键为原数组的值,值为计数;
  7. array_sum():数组中的值进行求和,字符串解析成0,字符串中含数值,即不为0,为该值
  8. array_product():数组中的值进行乘积,字符串解析成0,字符串中含数值,即不为0,为该值

栈操作

  1. 成员的增删,只允许在数组的一端进行
  2. 栈操作本质上是增删受限的操作
  3. array_push():尾部增加值,返回值为增加成功的数量
  4. array_pop():尾部删除,返回值为删除的值
  5. array_unshift():头部添加值,返回值为增加成功的数量
  6. array_shift():头部删除,返回值为删除的值

队列

注:索引数组按照键值排序添加,关联数组添加键值还是为数值

  1. 尾部追加,头部删除:array_push(),array_shift()
  2. 头部追加,尾部删除:array_unshift(),array_pop()

    <!-- 作业,队列 -->

索引数组排序

注:以下函数只针对索引数组,如果是关联数组,则会转为索引数组,原键值丢失

  1. sort():按照值排序数组,字符串在前,数值在后,升序排列,键名重置
  2. asort():按照值排序数组,字符串在前,数值在后,升序排列,键名不重置
  3. rsort():按照值排序数组,字符串在前,数值在后,倒序排列,键名重置
  4. arsort():按照值排序数组,字符串在前,数值在后,倒序排列,键名不重置
  5. shuffle():随机打乱数组,每次刷新一次,打乱一次

关联数组排序

  1. ksort():按照键排序,升序排列,键位字母按照字母表正序
  2. krsort():按照键排序,倒序排列,键位字母按照字母表倒序
  3. usort():自定义排列,格式(数组名,排序方法-函数),改函数方法除了正序倒序排列,应该还有其他方法,待验证

查询与替换

索引数组查询与替换
  1. array_slice():取出一部分成员,格式:(数组名,起始索引,数量),数量不写,默认取到结束,返回值为取出的数组,原数组不变
  2. array_splice():增删改,原数组变化
    2.1 删除,格式:(数组名,起始索引,数量),返回值是删除的数组,//原数组是删除后的数组
    2.2 修改,格式:(数组名,起始索引,数量,[删除数量相同个数的成员]),删除后替换
    2.3 新增,格式:(数组名,起始索引,0,[成员]),添加成员;
    关联数组添加与删除
  3. array_merge():关联数组添加元素([健=>值],目标数组),添加后,数组需要重新定义变量,或者’+’连接,如:[健=>值] + 目标数组,如果连接的数组元素,原数组存在,则’+’号,代表更换此数组元素到第一个;
  4. 删除参考栈操作的头尾删除,或者数组回调过滤器删除

数组回调

  1. array_filter():只返回数组中为true的元素组成的数组,
    1.1 只返回数组中为true的元素组成的数组,格式:($arr),空数组为false,空对象为true
    1.2 也可以对数组进行自定义条件过滤,格式:($arr,函数)—is_scalar()判断标量
  2. array_map():对每个成员,做回调处理,返回新数组
    1.1 格式(函数,$arr):
  3. array_reduce():迭代/归并处理函数
  4. array_walk():使用自定义函数进行回调处理,返回布尔值

其他

  1. gettype():获取数据类型,如:array,object
  2. get_object_vars():获取对象内的元素
  3. array_key_exists():判断是否存在某一个健,返回布尔值
  4. array_keys():返回所有的健作为一个索引数组
  5. range():定义一个范围数组,格式:(起始值,结束值,步长),可以用数字,也可以用英文字母;
  6. array_flip():将数组中的值与键交换

案例源码

  1. $arr6 = ['id'=>200,'name'=>'wang','score'=>160,'分类3'=>'满分'];
  2. $arr10 = ['id'=>200,'name'=>'wang','score'=>160,'分类3'=>'满分'];
  3. $arr10 = array_merge(['备注'=>'优秀学生'],$arr10); // 添加关联数组的元素与值
  4. echo array_key_exists('id',$arr6); //判断是否存在某一个健,返回布尔值
  5. printf('<pre>%s<pre>',print_r(array_keys($arr6),true)); // 返回数组的键作为一个索引数组
  6. $arr11 = ['id'=>200,'name'=>'wang','score'=>160,'分类3'=>'满分'];
  7. $number = range(0, 12,2); //定义一个范围数组,格式:(起始值,结束值,步长),可以用数字,也可以用英文字
  8. printf('<pre>%s<pre>',print_r($number,true));
  9. $arr11 = ['id'=>200,'name'=>'wang','score'=>160,'分类3'=>'满分'];
  10. printf('<pre>%s<pre>',print_r(array_flip($arr11),true)); //将数组中的值与键交换

案例结果

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议