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
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
|
||||||||||
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. |
返回值: | 返回包含被提取元素的数组。 |
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。
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!