数组中的运用
Posted 胡智杰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组中的运用相关的知识,希望对你有一定的参考价值。
通过foreach来遍历一个数组(重要,要求掌握)
语法:foreach(数组名 as $value)
还有一个用法:语法:
Foreach(数组名 as $key =>$value)
3)list()和each()
List():将数组里面的值赋值给变量
语法:
List(变量1,变量2,变量3) = 数组名
如果想要跳过某些值,直接使用空的逗号就可以了
List是能用于索引数组,不能用于关联数组
Each():会返回一个数组,这个数组里面有4个键,0,1,key,value。
0和key是一样,1和value是一样
Each()每使用一次,数组的指针就会向后偏移一次
通过while(),each(),list()来遍历一个数组
4)在php里面,PHP系统提供了一套关于操纵数组指针的函数
Current():取得当前指针位置的数组值
Key():取得当前指针位置的键名
Next():向后移动一位指针
Prev():向前移动一位指针
End():直接将数组指针跳到最后
Reset():重置数组指针,将指针移到最开头的地方
5. 预定义数组
所谓预定义数组,就是php系统已经给你定义好了的数组,直接使用就可以了。
$GLOBALS:首先这是一个系统定好了数组。当你每创建一个全局变量的时候,这个全局变量就会被放到$GLOBALS数组里面,是一个关联数组,数组的键名就是变量名,数组的值就是变量值
在函数里面如果要使用全局变量,也可以通过$GLOBALS这个全局数组
6. 数组相关函数
① 数组键值相关函数
Array_values():返回一个新数组,数组里面装的是之前数组所有元素的值
Array_keys():返回数组中键名
Array_keys()函数还有一个作用,就是找到指定元素的键名
Array_keys还支持严格模式,最后一个参数可以传入true或者false,如果为true,则开启严格模式
In_array():检查一个数组里面是否存在某一个值,返回值为true或者false
In_array(查找值,数组名,是否严格)
Array_search():和in_array()功能基本一模一样,连传入的参数都是一样的,只不过返回值不一样,返回的是元素的键名
还有一个扩展函数:array_key_exists():检测给定的键名是否存在于数组
Array_flip():用于交换数组里面的键和值
Array_reverse():反转数组,将原来数组的元素顺序进行反转
② 统计相关的数组函数
Count():统计数组里面元素的个数
该函数后面可以跟一个可选参数,true|false
是否统计多维数组的个数。
Array_count_values():统计一个数组里面所有值出现的次数,返回一个新数组,新数组的键名就是之前数组的元素名,新数组的值就是出现的次数
次数由高到低排列
Array_unique():用于删除数组中的重复值,并返回新的数组,新数组的键名不会发生改变,只会保留第一个键名,其他的被删除
① 使用回调函数处理数组元素
Array_filter():可以自己写一个函数对数组的元素进行过滤
语法:array_filter(数组名,”函数名”)
Array_walk():将一个数组里面的所有元素应用到某一个函数里面去
回调函数可以接受3个参数(数组的值,数组的键名,函数参数)
Array_map():确实和array_walk功能比较相像,但是他们两个也是有区别的, 首先就是传递参数上面的区别
Array_map(”函数名”,要处理的数组1,要处理的数组2,要处理的数组3…)
返回值上面也是有区别:array_walk的返回值只有2个,要么执行成功就是true,要么执行失败就是false。但是array_map是返回一个新的数组,新数组里面装的就是回调函数处理好了的元素
Array_map多多个数组进行处理
② 数组排序相关的函数
在Php里面系统给我们提供了一套数组排序函数
Sort()和rsort():这两个算是一组函数,sort是从小到大排序,rsort是从大到小排序
Asort和arsort:这两个也是一组函数,功能上和上面的那一组函数功能是一样,唯一的区别就是会保留原来数组的键名
Ksort和krsort:根据键名来对数组进行排序
自然排序法进行排序:
Natsort():根据自然排序法来进行排序
Natcasesort():根据自然排序法来进行排序,忽略大小写
③ 数组拆分,合并,分解相关函数
Array_slice(数组名,开始值,截取的个数,[true|false]):截取数组里面的一部分
如果最后一个参数设为true,保留原来的键名,否则不保留,默认就是false
如果是关联数组,默认就是返回原来的键名
Array_splice(): 删除一系列元素,而且可以选择是否用新的值来替换被删除的元素
Array_combine():合并两个数组来创建一个新的数组。其中一个数组是键名,另外一个是新数组的元素值
Array_merge():合并两个数组,如果键名有重复的,后面的会覆盖前面的
Array_merge()还有一个作用,就是对索引数组重新进行索引
Array_intersect():用于计算数组的交集
可以计算多个数组的交集
Array_diff():刚好和上面的函数相反,求函数的差集,返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。
多个数组的情况
④ 数据结构相关函数
Array_push和array_pop:这两个可以算作是一组函数
Array_push:往数组的末端添加新的一个或者多个元素
Array_pop():删除数组最后一个元素,返回值为弹出的元素
Array_shift和array_unshift:刚才上面一组函数是在数组的尾部进行操作,这组函数是在数组的首部进行操作
array_unshift:往数组的首端添加新的一个或者多个元素
Array_shift():删除数组第一个元素,返回值为弹出的元素
⑤ 其他数组相关函数
Array_rand():从一个数组里面随机取出一个或者多个元素并返回,返回的是元素的键名
Shuffle():将数组中元素的顺序打乱,键名也会重新被排号。
Range(起始值,结束值,间隔):创建一个指定范围的数组
Array_sum():计算数组中值的总和
PHP其他相关知识
在PHP里面,数组可以使用(+,==,===)来进行计算。
加法运算:两个数组可以进行相加操作,相加操作实际上就是合并2个数组,如果键名重复,只保留前面的元素,后面的被舍弃掉。
键名相同,后面的元素被舍弃
Array_merge():如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
==和===
==:如果两个数组具有相同的键值对,则返回TRUE
===:如果两个数组具有相同的键值对,键值对的数据类型也相同,顺序也相同,则返回true
删除数组中元素
想要删除数组里面的元素,使用unset()
以上是关于数组中的运用的主要内容,如果未能解决你的问题,请参考以下文章