PHP常用数组函数

1.1      关于数组操作的函数

1.1.1             range(start,end)

创建一个数组,值从start开始,一直到end结束

如果range里面的参数是数字,那么他直接按照数字大小的顺序排序,如果里面的参数是一个字符,那么他将按照ascii编码的顺序排序。

 

1.1.2             array_merge()

作用:将几个数组,然后生成一个新的数组。

如果合并数组的下标是数字,那么他会无视下标,直接生成一个新的数组,然后下标从0开始重新排序

如果合并数组的下标是字符串,那么他会保留原来的下标,合并后的数组,如果下标出现了冲突,那么后来的值会将原来的值替换。

 

1.1.3             array_rand()

随机取出一个数组的下标

 

array_rand存在第二个参数,默认情况下是1,代表获取一个数组元素的下标,他的数据类型等同于下标的数据类型,但是如果一次性随机获取多个元素的下标,他返回的是一个数组。

注意:虽然他是随机获取数组元素的下标,但是获取后的结果一定是小的下标放在前面而大的下标放在后面。

 

1.1.4             shuffle()

作用:    打乱一个数组的排序。

注意:使用shuffle打乱一个数组,不需要重新复制,它会自动将原来的数组的元素顺序打乱。

 

1.1.5             is_array()

作用:    判断一个变量是否是数组数据类型。

语法:    is_array(变量名),如果是数组,返回一个true,如果不是数组,返回一个false。

1.1.6             array_search()

 作用:  根据一个数组元素的值,去寻找他相对于的下标

 语法:  array_search(value,$arr[,boolean]),返回的是元素值对应的下标

array_search去遍历数组查找下标,是从左往右进行寻找,当找到第一个符合要求的元素时,直接返回下标,函数结束。

array_search去遍历数组,区分大小写

array_search默认情况下,是不区分数据类型的,如果想让其区分数据类型,将array_search的第三个参数修改为true即可。

1.2      关于数组元素操作的函数

1.2.1             array_keys()

作用: 获取数组中的所有下标,返回的结果还是一个数组

语法:    array_keys($arr)

1.2.2             array_values()

作用:    获取数组中的所有值,返回的结果还是一个数组

语法:    array_values($arr)

1.2.3             array_combine()

作用:    将两个数组合并,第一个数组里元素的值被当成新数组元素的下标,第二个数组里元素的值被当成新数组元素的值。

语法:    array_combine($arr1,$arr2)

注意:array_combine去合并两个数组,两个数组元素的数量必须是一样的。

 

1.2.4             in_array()

作用 : 查找某一个数组元素的值是否存在。

语法  :in_array(value,$arr[,boolean])。返回的是一个布尔值,如果存在,返回的是一个true,如果不存在,返回的结果是false。

  默认情况下不区分数据类型,如果想区分,将第三个参数修改为true即可。

in_array区分大小写

 

1.2.5             array_key_exists()

作用:    查找数组元素中是否存在某个下标

语法:    array_key_exists($key,$arr)

区分大小写

array_key_exists只有两个参数,他不区分数据类型

 

1.2.6             isset()

判断一个变量是否被定义。

 

思考: isset()和array_key_exists()判断数组元素有什么区别?

答案: 如果一个数组元素的值为null的时候,isset()判断的结果是false而array_key_exists()判断的结果是true。

 

1.2.7             implode()

作用  :  将一个数组拼接成一个字符串。

语法 : implode(string,$arr)

如果省略了拼接符,那么,他默认按照空字符串进行拼接

1.2.8             explode()

作用: 将一个字符串拆分成一个数组。

语法:    explode(string,$str[,num])

explode如果有第三个参数,则代表将字符串拆分成几份,最后一份包含字符传后面的所有部分。

explode第三个参数如果是一个负数,那么则代表将最后的几项丢弃

1.3      数组的交并差

1.3.1             array_merge()

参见昨天代码。就是将几个数组合并成一个新数组

1.3.2             array_diff()

代码的差级,计算某个数组中其他数组没有的元素。

语法:array_diff($arr1,$arr2[,$arr3..$arrn])

计算的是第一个参数数组中其他数组没有的部分

获得元素中的下标是第一个参数数组元素的下标。

 

1.3.3             array_intersect()

计算数组的交集

语法 :  array_intersect($arr1,$arr2[,$arr3..$arrn]);

计算的是所有数组中共同拥有的部分,下标仍然是以第一个参数数组的下标为准。

1.4      遍历数组的函数

1.4.1             array_map()

语法: array_map(函数名,$arr)

作用: 分别去取出数组里面的每一个元素的值,然后去执行函数。

除了调用php内置的函数以外,我们也可以去手写函数,然后通过我们自定义函数的函数名,也可以实现一个调用函数的功能

除了书写函数名的模式以外,我们也可以自己去书写一个匿名函数,效果是一样的。

我们也可以一次性去传递多个数组,那么第一次会将每个数组第一个元素的值取出,第二次会将每个数组第二个元素的值取出,以此类推

如果array_map中调用的函数为空,那么他将依次取出数组中的元素,然后将其合并成一个新的数组,最终的结果是一个二维数组。

1.4.2             array_walk()

作用  :  依次取出数组元素的下标和值。

语法 : array_walk($arr,’函数名’)

array_map可以一次性传递多个数组,但是array_walk只能传递一个数组。

 

注意: array_map在工作中比较常见,array_walk出现的可能比较小,因为array_walk的功能完全可以被foreach所取代。

 

1.5      栈和队列

栈:先进后出,后进先出

队列:先进先出,后进后出

1.5.1             array_push()

作用:往数组的最后插入元素

语法:array_push($arr,$value[,$value2..$valuen])

array_push也可以一次性添加多个元素。

 

1.5.2             array_pop()

作用:删除数组里最后一个元素

语法: array_pop($arr)

array_pop移除元素以后,返回的结果就是移除元素的值

1.5.3             array_shift()

作用  :  删除数组里面第一个元素

语法 :  array_shift($arr)

移出完第一个元素,后面的元素也会顺势往前位移一位,返回的结果也是移除元素的值。

1.5.4             array_unshift()

作用:往数组的最前面插入元素

语法:array_unshift($arr,$value[,$value2..$value3])

 

思考 : array_shift()和直接使用unset()去删除数组里第一个元素,有什么区别?

答案 : unset()删除的是数组元素的值,但是保留下标,但是array_shift()是将元素的下标和值统一移出。

1.6      数组的排序

1.6.1             sort()

作用 : 将数组元素的值按照从小到大的顺序排序。

语法 : sort($arr)

使用sort去排序数组,数组的下标全部舍去,新生成的数组下标按照从0开始,依次递增。

1.6.2             rsort()

作用 : 将一个数组从大到小进行排序。

语法 : rsort($arr)

 

1.6.3             asort()

作用 : 将一个数组从小到大进行排序,但是会保留原来的下标。

语法 : asort($arr)

1.6.4             arsort()

作用 : 将一个数组从大到小进行排序,但是也会保留下标。

语法 : arsort($arr)

1.6.5             ksort()

作用 : 将一个数组的下标,从小到大进行排序

语法 : ksort($arr)

1.6.6             krsort()

作用 : 将一个数组的下标,从大到小进行排序

语法 : krsort($arr)

1.6.7             natsort()

作用 : 自然排序会将字符串当成是一个整体,然后进行从小到大的排序。

语法 : natsort()

1.6.8             usort()

作用 : 自定义一个排序。

语法 : usort($arr,fn($num1,$num2){})

如果return的是一个大于0的整数,那么,他将往后排序

如果return 的是一个小于0的整数,那么,他将往前排序

如果return的是一个等于0的整数,那么,他保持不变

有些时候,对于一些二维数组,我们用普通排序的方式难以实现,这个时候,我们可以去使用自定义排序。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值