-
01月03日
-
【函数功能】
该函数从数组中移除选定的元素,并用新元素取代它。以数组形式返回被移除元素。
【函数语法】
array_splice (array &$input, $offset, $length = null, $replacement = null)
【参数说明】
参数 描述 &$input 必需。规定数组。 $offset 必需。数值。规定删除元素的开始位置。
- 0 = 第一个元素。
- 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。
- 如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。
- -2 意味着从数组的倒数第二个元素开始。
$length 可选。数值。规定被移除的元素个数,也是被返回数组的长度。
- 如果该值设置为正数,则移除该数量的元素。
- 如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。
- 如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。
$replacement 可选。规定带有要插入原始数组中元素的数组。
如果只有一个元素,则可以设置为字符串,不需要设置为数组。
【演示程序】
<?php /** * array_splice (array &$input, $offset, $length = null, $replacement = null) * **/ $input = array('site_name'=>'PHP1234','site_url'=>'php1234.cn','site_auth'=>'明礼馨德'); var_dump(array_splice($input, 0,1,'ThinkPHP')); echo '<br>'; var_dump($input); echo '<br>'; $input = array('site_name'=>'PHP1234','site_url'=>'php1234.cn','site_auth'=>'明礼馨德'); var_dump(array_splice($input, 0,3,array('php','java','c'=>'C++'))); echo '<br>'; var_dump($input); echo '<br>'; $input = array('site_name'=>'PHP1234','site_url'=>'php1234.cn','site_auth'=>'明礼馨德'); var_dump(array_splice($input, -1,2,array('php','java','c'=>'C++'))); echo '<br>'; var_dump($input); echo '<br>'; $input = array('site_name'=>'PHP1234','site_url'=>'php1234.cn','site_auth'=>'明礼馨德'); var_dump(array_splice($input, -2,-1,array('php','java','c'=>'C++'))); echo '<br>'; var_dump($input); ?>
【输出结果】
array(1) { ["site_name"]=> string(7) "PHP1234" } array(3) { [0]=> string(8) "ThinkPHP" ["site_url"]=> string(10) "php1234.cn" ["site_auth"]=> string(12) "明礼馨德" } array(3) { ["site_name"]=> string(7) "PHP1234" ["site_url"]=> string(10) "php1234.cn" ["site_auth"]=> string(12) "明礼馨德" } array(3) { [0]=> string(3) "php" [1]=> string(4) "java" [2]=> string(3) "C++" } array(1) { ["site_auth"]=> string(12) "明礼馨德" } array(5) { ["site_name"]=> string(7) "PHP1234" ["site_url"]=> string(10) "php1234.cn" [0]=> string(3) "php" [1]=> string(4) "java" [2]=> string(3) "C++" } array(1) { ["site_url"]=> string(10) "php1234.cn" } array(5) { ["site_name"]=> string(7) "PHP1234" [0]=> string(3) "php" [1]=> string(4) "java" [2]=> string(3) "C++" ["site_auth"]=> string(12) "明礼馨德" }
【特别注意】
1.如果函数没有移除任何元素(length=0),则将从 start 参数的位置插入被替换数组。 2.不保留被替换数组中的键名。 3.array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。 4.如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代。 5.PHP 版本:4+。
【原版定义】
/** * Remove a portion of the array and replace it with something else * @link http://www.php.net/manual/en/function.array-splice.php * @param input array <p> * The input array. * </p> * @param offset int <p> * If offset is positive then the start of removed * portion is at that offset from the beginning of the * input array. If offset * is negative then it starts that far from the end of the * input array. * </p> * @param length int[optional] <p> * If length is omitted, removes everything * from offset to the end of the array. If * length is specified and is positive, then * that many elements will be removed. If * length is specified and is negative then * the end of the removed portion will be that many elements from * the end of the array. Tip: to remove everything from * offset to the end of the array when * replacement is also specified, use * count($input) for * length. * </p> * @param replacement mixed[optional] <p> * If replacement array is specified, then the * removed elements are replaced with elements from this array. * </p> * <p> * If offset and length * are such that nothing is removed, then the elements from the * replacement array are inserted in the place * specified by the offset. Note that keys in * replacement array are not preserved. * </p> * <p> * If replacement is just one element it is * not necessary to put array() * around it, unless the element is an array itself, an object or &null;. * </p> * @return array the array consisting of the extracted elements. */
转载请注明出处:php1234.cn ,原文地址:http://www.php1234.cn/a/functions/2017/0103/176.html