怎么删除PHP数组中某个元素,并且重排索引

如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排:

<?php
	$arr = array('a','b','c','d');
	
	unset($arr[1]);
	
	print_r($arr);
?>

结果是:

<?php
	Array ( [0] => a [2] => c [3] => d );
?>

那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():

<?php
	$arr = array('a','b','c','d');  
	
	array_splice($arr,1,1);  
	
	print_r($arr); 
?>

结果是:

<?php
	Array ( [0] => a [1] => c [2] => d );
?>

PHP array_splice() 函数

PHP Array 函数

实例
从数组中移除元素,并用新元素取代它:

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

结果是:

<?php
	Array ( [0] => purple [1] => orange [c] => blue [d] => yellow );
?>

定义和用法
array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。

提示:如果函数没有移除任何元素(length=0),则将从 start 参数的位置插入被替换数组(参见例子 2)。

注释:不保留被替换数组中的键名。

说明

array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。

如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代。

最后生成的数组将会返回。

语法
array_splice(array,start,length,array);
参数描述
array必需。规定数组。
start必需。数值。规定删除元素的开始位置。 1. 0 = 第一个元素。 2. 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。 3. 如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。4. - 2 意味着从数组的倒数第二个元素开始。
length可选。数值。规定被移除的元素个数,也是被返回数组的长度。 1. 如果该值设置为正数,则移除该数量的元素。 2. 如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。 3. 如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。
array可选。规定带有要插入原始数组中元素的数组。如果只有一个元素,则可以设置为字符串,不需要设置为数组。
技术细节
返回值:返回由被提取元素组成的数组。
PHP 版本:4+
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值