PHP拆分合并分解结合数组array_slice()、array_splice

zxh5566  2016-07-27 20:15   Hits: 

1、array_slice()
该函数的作用是在数组中根据条件取出一段值并返回,如果数组有字符串键,所返回的数组将保留键名,该函数可以设置四个参数,其函数第一个参数array是必选项,调用时输入要处理的数组,第二个

参数offset也是必选参数,需要传入一个数值,规定取出元素的开始位置,如果是正数,则从前往后开始取,如果是负数,从后向前取offset绝对值数目的元素,第三个参数是可选的,也需要传入一个

数值,规定被返回数组的长度,如果是负数则从后向前,选取该值绝对值数目的元素,如果未设置该值,则返回所有元素,第四个参数也是可选的,如果为true则所返回的数组将保留键名,设置为false

值,也是默认值将重新设置索引键值,这里要注意的是,如果数组有字符串键,所返回的数组将保留键名

<?php
$lamp = array('linux','apache','mysql','php');
print_r(array_slice($lamp,1,2));// apache mysql
print_r(array_slice($lamp,-2,1)); // mysql
print_r(array_slice($lamp,1,2,true)); //Array([1]=>apache [2]=>mysql)
?>

2、array_splice()
该函数选择数组中的一系列元素,但不返回,而是删除它们并用其他值代替,如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代,最后生成的数组将会返回,其函数第一个

参数为必选,规定要处理的数组,第二个参数也是必须的,调用时传入数值,如果为正数,则从输入数组中该值指定的偏移量开始移除,如果为负值,则从输入数组末尾倒数该值指定的偏移量开始移除

,第三个参数是可选的,也需要一个数值,如果省略,则移除数组中从offset到结尾的所有部分,如果指定length并且为正数,则移除这么多元素,如果指定了length且为负数,则移除从offset到数组

末尾倒数length为止中间所有的元素,第四个参数array也是可选的,被移除的元素由此数组中的元素代替,如果没有移除任何值,则此数组中的元素将插入到指定位置
<?php
$input = array('linux','apache','mysql','php');
array_splice($input,2); //保留两个元素,其他删除  输出 Array([0]=>linux [1]=>apache)
print_r($input);

$input = array('linux','apache','mysql','php');
array_splice($input,1,-1); //保留第一个和最后一个其他删除 输出 Array([0]=>linux [3]=>php)
print_r($input);

$input = array('linux','apache','mysql','php');
array_splice($input,1,count($input),'web');//第一个保留,后面的全部由web替换 输出 Array([0]=>linux [1]=>web)

?>

3、array_combine()
array_combine()函数的作用是通过合并两个数组来创建一个新数组,其中一个数组是键名,另一个数组是值,如果其中一个数组为空,或者两个数据的元素相同,则该函数返回false,该函数两个参数

都是必选项
<?php
$a1 = array('os','webserver','database','language');
$a2 = array('linux','apache','mysql','php');
print_r(array_combine($a1,$a2));
//输出 Array([os]=>linux [webserver]=>apache [database]=>mysql [language]=>php)
?>

4、array_merge()
array_merge()函数的作用是把一个或多个数组合并为一个数组,如果键名有重复,该键的键值为最后一个键名对应的值,如果数组是数字索引的,则键名会以连续方式重新索引,这里要注意如果仅仅向

函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以0开始进行重新索引,该函数第一个参数是必选项,需要传入一个数组,可以有多个可选参数,但必须都是数组类型

的数据,返回将多个数组合并后的新数组。
<?php
$a1 = array('a'=>'linux','b'=>'apache');
$a2 = array('c'=>'mysql','b'=>'php');
print_r(array_merge($a1,$a1)); //输出Array([a]=>linux [b]=>php [c]=>mysql)
?>

5、array_intersect()
array_intersect()函数的作用是计算数组的交集,返回的结果数组中包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变,仅有值用于比较,第一个参数是必选的,与其

他数据进行比较的第一个数组,第二个也是必选的,与第一个数组进行比较的数组,可以有多个可选参数作为以后的参数,与第一个数组进行比较的数组
<?php
$a1 = array('linux','mysql','apache','php');
$a1 = array('linux','tomcat','mysql','jsp');
array_intersect($a1,$a2); //输出Array([0]=>linux [1]=>mysql)
?>

6、array_diff()
array_diff()函数的作用是返回两个数组的差集,该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的元素值,在返回的数组中,键名保持不变,第一个参数是必选项,传入与其他数

组进行比较的数组,第二个参数也是必选项,传入与第一个数组进行比较的数值,第三个参数以后都是可选项,可用一个或任意个数组与第一个数组进行比较,进行数组比较时,把在第一个数组中存在

且第二个数组中没有的元素返回
<?php
$a1 = array('linux','mysql','apache','php');
$a1 = array('linux','tomcat','mysql','jsp');
array_diff($a1,$a2); //输出Array([2]=>apache [3]=>php)
?>

上一篇:PHP数组的排序函数 sort() asort() ksort()
下一篇:PHP数组与数据结构 array_pop() array_push() array_shift