php函数array_splice

函数用法:array_splice($array,$offset,$length,$array_replace)php

$offset:    向原数组中删除元素的起始位置,也是插入值的起始位置数组

$length:    原数组中被删除的元素数量app

$array_replace:    要被插入到原数组中的值,多个值必须以数组的形式提供函数

注意:当参数$offset是负数时,用原数组的长度加上负数做为相应的参数来计算。spa

1、当原数组是索引数组时code

一、这个方法直接在原数组$array上删除由$offset和$length指定的元素,并重建数组索引,它的返回值是被删掉的数组元素组成的数组(这个索引也被重建):索引

$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_splice($a1,0,2));
//输出:Array ( [0] => Dog [1] => Cat )
print_r($a1);
//输出:Array ( [0] => Horse [1] => Bird )

$a2 = array('apple','banana','cat','dog','bird');
print_r(array_splice($a2,2,1));
//输出:Array( [0] => cat )
print_r($a2);
//输出:Array( [0] => apple [1] =>banana [2] => dog [3] => bird )

二、若是给这个方法提供了第四个参数$array_replace,则会在原数组上修改,把由$offset和$length指定的元素的值用$array_replace中的元素值替代,并重建原数组的索引。替换的顺序是$array_replace中元素的建立顺序与其索引值无关io

$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
print_r(array_splice($a1,0,2,$a2));
//输出:Array ( [0] => Dog [1] => Cat )
print_r($a1);
//输出:Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )

三、事实上,$length的大小与$array_replace的长度无关,$length只表明从原数组中删除多少个元素,不管删除多少个元素,$array_replace中的全部值都会被插入到原数组中的指定起始位置$offsetclass

例如:若是提供第四个参数的同时,$length设为0,则会在原数组中$offset位置开始插入$array_replace中的全部元素方法

$a1=array(0=>"Dog",1=>"Cat");
$a2=array(0=>"Tiger",1=>"Lion",2=>"Elepant");
print_r(array_splice($a1,1,0,$a2));
//输出:Array ( ) 
print_r($a1);
//输出:Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Elepant [4] => Cat )


2、当原数组是关联数组时

一、$offset的计数方法也是按照原数组中元素的建立顺序,与其索引值无关。

二、若是提供了第四个参数,则$array_replace中的元素会按照建立顺序在原数组指定位置进行替换,而且原数组中被替换的那几个元素剩下元素中索引值是数字的元素,它们的索引会从0开始重建

$a1=array('3'=>"Dog",'b'=>"Cat",'2'=>"Horse",1=>"Bird",'5d'=>'Bug','d'=>'buck');
$a2=array('b'=>"Tiger",'a'=>"Lion");
print_r(array_splice($a1,1,2,$a2));
//输出:Array ( [b] => Cat [0] => Horse )
print_r($a1);
//输出:Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Bird [5d] => Bug [d] => buck )
相关文章
相关标签/搜索