PHP function array_splice() removes specified elements from an array and replaces them with other values

黄舟
Release: 2023-03-17 08:42:01
Original
2238 people have browsed it

Example

Remove an element from an array and replace it with a new element:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
array_splice($a1,0,2,$a2);
print_r($a1);
?>
Copy after login

Definition and usage

array_splice() function from Removes the selected element from the array and replaces it with the new element. The function will also return an array of removed elements.

Tip: If the function does not remove any elements (length=0), the replacement array will be inserted from the position of the start parameter (see Example 2).

Note: Key names in the substitution array are not retained.

Syntax

array_splice(array,start,length,array)
Copy after login
ParametersDescription
array Required. Specifies an array.
startRequired. numerical value. Specifies the starting position of the deleted element. 0 = first element. If the value is set to a positive number, removal begins at the offset in the array specified by the value. If the value is set to a negative number, removal begins at the offset specified by the value from the end of the array. -2 means start from the second to last element of the array.
length Optional. numerical value. Specifies the number of elements to be removed, which is also the length of the returned array. If the value is set to a positive number, that number of elements are removed. If this value is set to a negative number, all elements from start to length inverse of the end of the array are removed. If this value is not set, all elements from the position set by the start parameter to the end of the array are removed.
arrayOptional. Specifies the array with the elements to be inserted into the original array. If there is only one element, it can be set to a string and does not need to be set to an array.

Technical details

Return value: Returns the array containing the extracted elements.
PHP version: 4+

更多实例

实例 1

与本页前面部分的实例相同,但是输出返回的数组:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
print_r(array_splice($a1,0,2,$a2));
?>
Copy after login

实例 2

带有设置为 0 的 length 参数:

<?php
$a1=array("0"=>"red","1"=>"green");
$a2=array("0"=>"purple","1"=>"orange");
array_splice($a1,1,0,$a2);
print_r($a1);
?>
Copy after login

在array_splice中,有这么一段代码:

/* Don&#39;t create the array of removed elements if it&#39;s not going
  * to be used; e.g. only removing and/or replacing elements */
 if (return_value_used) { // 如果有用到函数返回值则创建返回数组,否则不创建返回数组
   int size = length;
 
   /* Clamp the offset.. */
   if (offset > num_in) {
     offset = num_in;
   } else if (offset < 0 && (offset = (num_in + offset)) < 0) {
     offset = 0;
   }
 
   /* ..and the length */
   if (length < 0) {
     size = num_in - offset + length;
   } else if (((unsigned long) offset + (unsigned long) length) > (unsigned) num_in)     {
     size = num_in - offset;
   }
 
   /* Initialize return value */
   array_init_size(return_value, size > 0 ? size : 0);
   rem_hash = &Z_ARRVAL_P(return_value);
 }
Copy after login

array_splice函数返回的是被删除的切片。这段代码的意思是,如果array_splice需要返回值,那么才创建返回数组,否则不创建,以免浪费空间。这也是一个编程小技巧,仅当需要的时候才返回。比如在函数中使用$result = array_splice(...),那么return_value_used就是true。

The above is the detailed content of PHP function array_splice() removes specified elements from an array and replaces them with other values. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template