删除元素

我们删除元素通常用unset()函数

unset

unset()函数--释放给定的变量

语法

void unset ( mixed $var [, mixed $... ] )

unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

我们可以用unset()函数来删除一个变量,如

$a = 5;
echo ($a);
echo '<br>';
unset($a);//释放 (销毁) 变量
echo ($a);

输出结果

5

输出后会有一个警告,是因为我们已经销毁了$a这个变量,释放了这个变量内存,所以会报错

这个函数也可以用于删除一个数组

$a = array('张三','李四','王五');
print_r($a);
echo '<br>';
unset($a);//释放 (销毁) 变量

输出结果

Array ( [0] => 张三 [1] => 李四 [2] => 王五 )

都是上图中的例子删除的是一个数组,如果我们想要删除这个数组中的某个元素,可以写上这个元素的索引号,就可以了

$a = array('张三','李四','王五');
print_r($a);
echo '<br>';
//删除数组中某个元素 
unset($a[1]);

输出结果

Array ( [0] => 张三 [2] => 王五 

我们根据索引号删除了李四,但是王五的索引号并没有任何的变化,还是2

unset()函数销毁元素后,剩下元素的索引号并不会有任何改变

也可以使用另一个函数来删除元素

array_splice

array_splice — 把数组中的一部分去掉并用其它值取代

说明

array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] )

input 数组中由 offsetlength 指定的单元去掉,如果提供了 replacement 参数,则用其中的单元取代。

注意 input 中的数字键名不被保留。

参数

input

输入的数组。

offset

如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。

length

如果省略 length ,则移除数组中从 offset 到结尾的所有部分。如果指定了 length 并且为正值,则移除这么多单元。如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。小窍门:当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length

replacement

如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。

如果 offsetlength 的组合结果是不会移除任何值,则 replacement 数组中的单元将被插入到 offset 指定的位置。 注意替换数组中的键名不保留。

如果用来替换 replacement 只有一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组、一个对象或者 NULL

如下例

$a = array('张三','李四','王五');
print_r($a);
echo '<br>';
array_splice($a, 1,1);
print_r($a);

输出结果

Array ( [0] => 张三 [1] => 李四 [2] => 王五 ) 
Array ( [0] => 张三 [1] => 王五 )

在删除索引号为一的一个元素后,王五的索引号发生了改变

而在这一句代码array_splice($a, 1,1);中第一个一代表的是元素索引号,第二个1表示删除一个。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值