array_slice
定义
返回数组中的选定部分
索引数组会重置键名,关联数组会保留键名
语法
array_slice(array,start,length,preserve)
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
start | 必需。数值。规定取出元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从前往后开始取。如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。 |
length | 可选。数值。规定被返回数组的长度。 如果该值设置为整数,则返回该数量的元素。如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。 |
preserve | 可选。规定函数是保留键名还是重置键名。可能的值:true - 保留键名 false - 默认。重置键名 |
$array = ['张三','李四','王五','豆豆','杨杨','小花','小猪'];
//从倒数第4个元素开始取到倒数第2个元素并保留键名
$arr=array_slice($array,-4,-2,true);
printf('<pre>%s</pre><hr>', print_r($arr, true));
-------------------------------
//输出结果
Array
(
[3] => 豆豆
[4] => 杨杨
)
array_splice
定义
从数组中移除选定的元素,并用新元素取代它,函数返回被移除元素的数组
如果函数没有移除任何元素(length=0),则替代数组将从 start 参数的位置插入
不保留替代数组中的键名
原数组是索引数组键名会被重置,原数组是关联数组会保留键名
语法
array_splice(array,start,length,array)
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
start | 必需。数值。规定删除元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。 -2 意味着从数组的倒数第二个元素开始。 |
length | 可选。数值。规定被移除的元素个数,也是被返回数组的长度。 如果该值设置为正数,则移除该数量的元素。如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。 |
array | 可选。规定带有要插入原始数组中元素的数组。如果只有一个元素,则可以设置为字符串,不需要设置为数组。 |
例子
$array1 = ['张三','李四','a1'=>'王五','a2'=>'豆豆','杨杨','小花','a3'=>'小猪'];
$array2=['jim','lili','joke'];
//将array1数组中第3个元素至倒数第2个元素的成员替换成$array2内的元素
$arr=array_splice($array1,3,-1,$array2);
//原数组修改结果
printf('<pre>%s</pre><hr>', print_r($array1, true));
//在原数组中被删除的元素
printf('<pre>%s</pre><hr>', print_r($arr, true));
-------------------------------
//输出结果
Array
(
[0] => 张三
[1] => 李四
[a1] => 王五
[2] => jim
[3] => lili
[4] => joke
[a3] => 小猪
)
Array
(
[a2] => 豆豆
[0] => 杨杨
[1] => 小花
)