数组中的运用

Posted 胡智杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组中的运用相关的知识,希望对你有一定的参考价值。

通过foreach来遍历一个数组(重要,要求掌握)

语法:foreach(数组名 as $value) 

还有一个用法:语法:

Foreach(数组名 as $key =>$value)

 

 

3list()each()

List():将数组里面的值赋值给变量

语法:

List(变量1,变量2,变量3) = 数组名

 

如果想要跳过某些值,直接使用空的逗号就可以了

List是能用于索引数组,不能用于关联数组

 

 

Each():会返回一个数组,这个数组里面有4个键,0,1keyvalue

0key是一样,1value是一样

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是从大到小排序

 

 

Asortarsort:这两个也是一组函数,功能上和上面的那一组函数功能是一样,唯一的区别就是会保留原来数组的键名

 

 

Ksortkrsort:根据键名来对数组进行排序

 

 

自然排序法进行排序:

Natsort():根据自然排序法来进行排序

 

Natcasesort():根据自然排序法来进行排序,忽略大小写

 

 

③  数组拆分,合并,分解相关函数

Array_slice(数组名,开始值,截取的个数,[true|false]:截取数组里面的一部分

如果最后一个参数设为true,保留原来的键名,否则不保留,默认就是false

 

如果是关联数组,默认就是返回原来的键名

 

 

 

Array_splice(): 删除一系列元素,而且可以选择是否用新的值来替换被删除的元素

 

Array_combine():合并两个数组来创建一个新的数组。其中一个数组是键名,另外一个是新数组的元素值

 

 

Array_merge():合并两个数组,如果键名有重复的,后面的会覆盖前面的

 

Array_merge()还有一个作用,就是对索引数组重新进行索引

 

 

Array_intersect():用于计算数组的交集

 

可以计算多个数组的交集

 

 

Array_diff():刚好和上面的函数相反,求函数的差集,返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。

 

多个数组的情况

 

 

④  数据结构相关函数

Array_pusharray_pop:这两个可以算作是一组函数

Array_push:往数组的末端添加新的一个或者多个元素

 

Array_pop():删除数组最后一个元素,返回值为弹出的元素

 

 

Array_shiftarray_unshift:刚才上面一组函数是在数组的尾部进行操作,这组函数是在数组的首部进行操作

array_unshift:往数组的首端添加新的一个或者多个元素

 

Array_shift():删除数组第一个元素,返回值为弹出的元素

 

 

⑤ 其他数组相关函数

Array_rand():从一个数组里面随机取出一个或者多个元素并返回,返回的是元素的键名

 

 

Shuffle():将数组中元素的顺序打乱,键名也会重新被排号。

 

 

Range(起始值,结束值,间隔):创建一个指定范围的数组

 

 

Array_sum():计算数组中值的总和

 

 

 

PHP其他相关知识

PHP里面,数组可以使用(+=====)来进行计算。

加法运算:两个数组可以进行相加操作,相加操作实际上就是合并2个数组,如果键名重复,只保留前面的元素,后面的被舍弃掉。

 

键名相同,后面的元素被舍弃

 

Array_merge():如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 

 

==和===

 

==:如果两个数组具有相同的键值对,则返回TRUE

===:如果两个数组具有相同的键值对,键值对的数据类型也相同,顺序也相同,则返回true

 

 

删除数组中元素

想要删除数组里面的元素,使用unset()

 

以上是关于数组中的运用的主要内容,如果未能解决你的问题,请参考以下文章

HDU-1403-Longest Common Substring(后缀数组的高度数组运用)

链接脚本在编程中的高级运用之二——运行时库和C++特性支持

关于数组的灵活运用2.精讲!

关于数组的灵活运用2.精讲!

关于数组的灵活运用2.精讲!

对于数组的灵活运用。精讲!