PHP中删除元素 unset 、 array_splice

unset

unset释放或删除给定的变量
可以销毁数字

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

输出结果:5
报错(释放变量,内存被收回)

可以销毁字符串

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

输出结果:张三
报错(释放变量,内存被收回)

也可以销毁数组


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

输出结果:Array([0] => 张三[1] => 李四[2] => 王五)

销毁数组中的一个元素,需指定键名

$a = array('张三','李四','王五');
print_r($a);
echo "<br>";
unset($a[1]);//输出指定的元素
print_r($a);

输出结果:Array([0] => 张三[1] => 李四[2] => 王五)
Array([0] => 张三[2] => 王五)

输出元素中带键名的元素

$a = array('a01'=>'张三','a02'=>'李四','a03'=>'王五');
print_r($a);
echo "<br>";
unset($a['a02']);//输出指定的元素
print_r($a);

输出结果:Array([a01] => 张三[a02] => 李四[a03] => 王五)
Array([a01] => 张三[a03] => 王五)

二维数组删除

删除前

$arr = array();
$arr[1001] = array(1001,'张三','男',20);
$arr[1002] = array(1002,'李四','男',20);
$arr[1003] = array(1003,'王五','男',20);  

echo '<pre>';
print_r($arr);
echo '</pre>';

输出结果:Array(
[1001] => Array
(
[0] => 1001
[1] => 张三
[2] => 男
[3] => 20
)
[1002] => Array
(
[0] => 1002
[1] => 李四
[2] => 男
[3] => 20
)
[1003] => Array
(
[0] => 1003
[1] => 王五
[2] => 男
[3] => 20
)
)

删除后

unset($arr[1002]);

输出结果:Array(
[1001] => Array
(
[0] => 1001
[1] => 张三
[2] => 男
[3] => 20
)
[1003] => Array
(
[0] => 1003
[1] => 王五
[2] => 男
[3] => 20
)
)

删除也可以用array_splice(把数组中的一部分去掉并用其它值代替)

array_splice

array_splice(array &$input,int %offset|,int $length = 0|,mixed $replacement ||)
input:输入的数组
offset:如果offset为正,则从input数组中该值指定的偏移量开始移除。如果offset为负,则从input末尾倒数该值指定的偏移量开始移除。
length:如果省略length,则移除数组中从offset到结尾的所有部分。如果指定了length并且为正值,则移除这么多单元。如果制定了length并且为负值,则移除从offset到数组末尾倒数length为止中间所有的单元。

$a = array('张三','李四','王五');
print_r($a);
echo "<br>";
unset($a[1]);//输出指定的元素
print_r($a);

输出结果:Array([0] => 张三[1] => 李四[2] => 王五)
Array([0] => 张三[2] => 王五)

array_splice($a,1,1);

输出结果:Array([0] => 张三[1] => 李四[2] => 王五)
Array([0] => 张三[1] => 王五)
注:第一个1,索引号为1
第二个1,删除一个

两者区别:后边的索引号会根据删除的元素进行变化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值