Heim  >  Artikel  >  Backend-Entwicklung  >  Die PHP-Funktion array_splice() entfernt bestimmte Elemente aus einem Array und ersetzt sie durch andere Werte

Die PHP-Funktion array_splice() entfernt bestimmte Elemente aus einem Array und ersetzt sie durch andere Werte

黄舟
黄舟Original
2017-11-09 09:05:442187Durchsuche

Beispiel

Entfernt ein Element aus einem Array und ersetzt es durch ein neues 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);
?>

Definition und Verwendung

array_splice( ) Die Funktion entfernt das ausgewählte Element aus dem Array und ersetzt es durch ein neues Element. Die Funktion gibt außerdem ein Array entfernter Elemente zurück.

Tipp: Wenn die Funktion keine Elemente entfernt (Länge=0), wird das Ersatzarray ab der Position des Startparameters eingefügt (siehe Beispiel 2).

Kommentar : Schlüsselnamen in Substitutionsarrays werden nicht beibehalten.

Syntax

array_splice(array,start,length,array)
Parameter Beschreibung
array Erforderlich . Gibt ein Array an.
start Erforderlich. Zahlenwert. Gibt die Startposition des remove
参数 描述
array 必需。规定数组。
start 必需。数值。规定删除元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。 -2 意味着从数组的倒数第二个元素开始。
length 可选。数值。规定被移除的元素个数,也是被返回数组的长度。 如果该值设置为正数,则移除该数量的元素。如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。 
array 可选。规定带有要插入原始数组中元素的数组。如果只有一个元素,则可以设置为字符串,不需要设置为数组。
-Elements an. 0 = erstes Element. Wenn der Wert auf eine positive Zahl festgelegt ist, beginnt die Entfernung am Offset im durch den Wert angegebenen Array. Wenn der Wert auf eine negative Zahl festgelegt ist, beginnt die Entfernung an dem durch den Wert angegebenen Offset vom Ende des Arrays. -2 bedeutet, dass mit dem vorletzten Element des Arrays begonnen wird.
length Optional. Zahlenwert. Gibt die Anzahl der zu entfernenden Elemente an, die auch die Länge des zurückgegebenen Arrays ist. Wenn der Wert auf eine positive Zahl gesetzt ist, wird diese Anzahl an Elementen entfernt. Wenn dieser Wert auf eine negative Zahl gesetzt ist, werden alle Elemente vom Anfang bis zur Länge invers zum Ende des Arrays entfernt. Wenn dieser Wert nicht festgelegt ist, werden alle Elemente von der durch den Startparameter festgelegten Position bis zum Ende des Arrays entfernt.
array Optional. Gibt das Array mit den Elementen an, die in das ursprüngliche Array eingefügt werden sollen. Wenn nur ein Element vorhanden ist, kann es auf string

festgelegt werden und muss nicht festgelegt werden zu einem Array.

Technische Details
返回值: 返回包含被提取元素的数组。
PHP 版本: 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));
?>

实例 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);
?>

在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);
 }

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

Das obige ist der detaillierte Inhalt vonDie PHP-Funktion array_splice() entfernt bestimmte Elemente aus einem Array und ersetzt sie durch andere Werte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn