Blogger Information
Blog 25
fans 1
comment 0
visits 12960
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组的增删改查以及常用函数的使用
xueblog9的进阶之旅
Original
654 people have browsed it

数组

手工遍历

  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)); //将数组中的值与键交换

案例结果

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post