本节介绍的数组处理函数能够完成一些更复杂的数组处理任务,可以把数组作为一个集合处理。例如,对两个货多个数组进行合并,计算数组间的差集或交集,从数组元素中提取一部分,以及完成数组的比较。
①函数array_slice()
array_slice()函数的作用是在数组中根据条件取出一段值并返回。如果数组有字符串键,所返回的数组将保留键名。该函数可以设置4个参数,其函数的原型如下:
array array_slice(array array , int offset [,int length[,bool preserver_keys]])
第一个参数array是必选项,调用时输入要处理的数组。第二个参数offset也是必须的参数,需要传入一个数值,规定取出元素的开始位置。如果是正数,则从前往后开始取,如果是负值,从后向前取offset绝对数目的元素。第三个参数是可选的,也需要传入一个数值,规定被返回数组的长度,如果是负数则从后向前,选取该值绝对数目的元素。如果未设置该值,则返回所有元素。第四个参数也是可选的,需要一个布莱尔类型的值,如果未TRUE值则所返回的数组将保留键名。设置为FALSE值,也是默认值将重新设置索引键值。这里需要注意的是,如果数组有字符串键,所返回的数组将保留键名。函数array_slice()使用的代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
②函数array_splice()
array_splice()函数与array_slice()函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其他值代替。如果提供了第四个参数,则之前选中的那些元素将备第四个参数指定的数组取代。最后生成的数组将会返回。其函数原型如下:
array array_splice(array &input, int offset [,int length[,array replacement]])
第一个参数array为必选项,规定要处理的数组。第二个参数offset也是必选项,调用时传入数值。如果offset为正数,则从输入数组中该值指定的偏移量开始移除。如果offset为负,则从输入数组末尾倒数该值指定的偏移量开始移除。第三个参数length是可选的,也需要一个数值,如果省略该参数,则移除数组中从offset到结尾的所有部分。如果指定了length并且为正值,则移除这么多元素。如果指定了length且为负值,则移除从offset到数组末尾倒数length为止中间所有的元素。第四个参数array也是可选的,被移除的元素由此数组中的元素替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。函数array_splice()使用的代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
③函数array_combine()
array_comblie()函数的作用是通过合并两个数组来创建一个新数组。其中一个数组是键名,另一个数组的值为键值。如果其中一个数组为空,或者两个数组的元素个数不同,则函数返回false。其函数原型如下:
array array_combine(array keys, array values)
该函数有两个参数且都是必选项,两个参数必须有相同数目的元素。函数array_combine()使用的代码如下所示:
1 2 3 4 5 6 7 |
|
④函数array_merge()
array_merge()函数的作用是把一个或多个数组合并为一个数组。如果键名有重复,该键的值最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。这里要注意如果仅仅向array_merge()函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以0开始进行重新索引。其函数的原型如下:
array array_merge(array array1[,array array2 [,array...]])
该函数第一个参数是必选项,需要传入一个数组。可以有多个可选参数,但必须都是数组类型的数据。返回将多个数组合并后的新数组。函数array_merge()使用的代码如下所示》:
1 2 3 4 5 6 7 8 9 10 |
|
⑤函数array_intersect()
array_intersect()函数的作用是计算数组的交集。返回的结果数组中包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变,仅有值用于比较。其函数的原型如下:
array array_intersect(array array1, array array2 [,array...])
该函数第一个参数是必选项,与其他数组进行比较的第一个数组。第二个参数也是必选项,与第一个数组进行比较的数组。可以有多个可选参数作为以后的参数,与第一个数组进行比较的数组。函数array_intersect()使用的代码如下所示:
1 2 3 4 5 6 |
|
⑥函数array_diff()
array_diff()函数的作用是返回两个数组的差集数组(值不相同的元素)。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的元素值。在返回的数组中,键名保持不变。其函数的原型如下:
array array_diff(array array1, array array2 [,array...])
第一个参数是必选项,传入与其他数组进行比较的数组。第二个参数也是必选项,传入与第一个数组进行比较的数组。第三个参数以后都是可选项,可用一个或任意多个数组与第一个数组进行比较。本函数仅有值用于比较。函数array_diff()使用的代码如下所示:
1 2 3 4 5 6 |
|
在上例中,使用array_diff()函数进行两个数组比较时,把在第一个数组中存在且第二个数组中没有的元素返回。
>> 本文固定链接: http://php.ncong.com/php_course/arry_function/chaifei_hebing_fenjie_jiehe.html
>> 转载请注明: 恩聪php 2014年04月14日 于 恩聪PHP学习教程 发表
数组函数《拆分、合并、分解和接合》