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
| ||||||||||
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. |
返回值: | 返回包含被提取元素的数组。 |
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't create the array of removed elements if it'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!