slice 和 splice 的英文意思
slice 切成片; 切下; 划分
splice 剪接
所以在PHP语法中, 就有以下的意思
array_slice 返回数组中被选定的部分.
array_splice 删除并替换数组中指定的元素.
上代码 ( // 后面为输出的内容)
array_slice(array(必须),start(必须),length(可选),preserve(可选))
在array1这个数组的下标为1的元素开始, 截取2个元素的长度(可选参数, 如果不选择长度, 则是直至最后一个 元素的唱的).
$array1 = array('Touch me', 'Make me come alive', 'turn me on');
print_r(array_slice($array1, 1, 2));
// 输出为: Array ( [0] => Make me come alive [1] => turn me on )
preserve 为可选。规定函数是保留键名还是重置键名。可能的值:
true - 保留键名
false - 默认。重置键名
$array2 = array('red', 'green', 'blue', 'yellow', 'brown');
print_r(array_slice($array2, 1));
// Array ( [0] => green [1] => blue [2] => yellow [3] => brown )
print_r(array_slice($array2, 1, 2, true));
//Array ( [1] => green [2] => blue )
print_r(array_slice($array2, 1, 2));
//Array ( [0] => green [1] => blue )
array_splice(array(必),deleteFromIndex(必),length(可选),insertArray(可选))
$a1 = array('a' => 'red','b' =>'green', 'c'=>'blue','d'=>'yellow');
$a2 = array('a' => 'purple', 'b' => 'orange');
print_r(array_splice($a1, 0, 2, $a2));
// Array ( [a] => red [b] => green )
print_r($a1);
// 改变了原数组$a1:Array ( [0] => purple [1] => orange [c] => blue [d] => yellow )
$a1=array("0"=>"red","1"=>"green");
$a2=array("0"=>"purple","1"=>"orange");
array_splice($a1,1,0,$a2);
print_r($a1);
//Array ( [0] => red [1] => purple [2] => orange [3] => green )
在这里需要注意的是这两个函数的必选参数 第二个(start 和 deleteFromIndex ) 是可以为负数的, 负数情况下就是从最后面开始数倒数第 start 或 deleteFromIndex 个的位开始 向后数 length 个
下面代码的意思为在$a这个数组的倒数第2个元素开始向后 slice (截取) 1个元素做为返回值返回, 所以输出为yellow.
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,-2,1));
//Array ( [0] => yellow )