Maison >développement back-end >tutoriel php >La fonction PHP array_splice() supprime les éléments spécifiés d'un tableau et les remplace par d'autres valeurs

La fonction PHP array_splice() supprime les éléments spécifiés d'un tableau et les remplace par d'autres valeurs

黄舟
黄舟original
2017-11-09 09:05:442250parcourir

Exemple

Supprime un élément d'un tableau et le remplace par un nouvel élément :

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

Définition et utilisation

array_splice( ) La fonction supprime l'élément sélectionné du tableau et le remplace par un nouvel élément. La fonction renverra également un tableau d'éléments supprimés.

Astuce : Si la fonction ne supprime aucun élément (longueur=0), le tableau de remplacement sera inséré à partir de la position du paramètre start (voir exemple 2).

Commentaire  : Les noms de clés dans les tableaux de substitution ne sont pas conservés.

Syntaxe

array_splice(array,start,length,array)
Paramètre Description
tableau Obligatoire . Spécifie un tableau.
start Obligatoire. valeur numérique. Spécifie la position de départ de l'élément remove
参数 描述
array 必需。规定数组。
start 必需。数值。规定删除元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。 -2 意味着从数组的倒数第二个元素开始。
length 可选。数值。规定被移除的元素个数,也是被返回数组的长度。 如果该值设置为正数,则移除该数量的元素。如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。 
array 可选。规定带有要插入原始数组中元素的数组。如果只有一个元素,则可以设置为字符串,不需要设置为数组。
. 0 = premier élément. Si la valeur est définie sur un nombre positif, la suppression commence au décalage dans le tableau spécifié par la valeur. Si la valeur est définie sur un nombre négatif, la suppression commence au décalage spécifié par la valeur à partir de la fin du tableau. -2 signifie commencer de l'avant-dernier élément du tableau.
longueur Facultatif. valeur numérique. Spécifie le nombre d'éléments à supprimer, qui correspond également à la longueur du tableau renvoyé. Si la valeur est définie sur un nombre positif, ce nombre d'éléments est supprimé. Si cette valeur est définie sur un nombre négatif, tous les éléments du début à la longueur inverse de la fin du tableau sont supprimés. Si cette valeur n'est pas définie, tous les éléments de la position définie par le paramètre start jusqu'à la fin du tableau sont supprimés.
array Facultatif. Spécifie le tableau avec les éléments à insérer dans le tableau d'origine. S'il n'y a qu'un seul élément, il peut être défini sur string

et n'a pas besoin d'être défini à un tableau.

Détails techniques
返回值: 返回包含被提取元素的数组。
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。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn