6.5.16 PHP拆分、合并、分解与结合数组函数1
拆分、合并、分解与结合数组
array_slice -- 从数组中取出一段
语法: array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )
array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。
如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。
array_splice -- 把数组中的一部分去掉并用其它值取代
语法:array array_splice ( array &input, int offset [, int length [, array replacement]] )
array_splice() 把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用 replacement 数组中的单元取代。返回一个包含有被移除单元的数组。注意 input 中的数字键名不被保留。
如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。
如果省略 length,则移除数组中从 offset 到结尾的所有部分。
如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。
array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
语法:array array_combine ( array keys, array values )
返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。
如果两个数组的单元数不同或者数组为空时返回 FALSE。
•rray_merge -- 合并一个或多个数组
–语法: array array_merge ( array array1 [, array array2 [, array ...]] )
–array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
–如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
–如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
•
array_intersect -- 计算数组的交集
语法 array array_intersect ( array array1, array array2 [, array ...] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
array_diff -- 计算数组的差集
语法:array array_diff ( array array1, array array2 [, array ...] )
array_diff() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。
例 1.php
<?php
$arr = array("a", "b", "c", "d", "e");
$narr = array_slice($arr, -3, 2, true);
print_r($narr);
例 2.php
<?php
$arr = array("a", "b", "c", "d", "e");
array_splice($arr, -3, 2, array("hello", "world"));
print_r( $arr );
例 test.php
<?php
$a = array("os", "webserver", "db", "language", "html");
$b = array("linux", "apache", "mysql", "php");
$narr = array_combine($a, $b);
print_r( $narr );