PHP删除数组中任意位置的一个元素

之前的文章中介绍使用数组模拟队列和栈等数据结构时,用到了array_shift()和array_pop()两个函数,分别用于从数组前面和数组后面删除一个元素.但如果需要删除数组中任意位置的一个元素,就需要对数组用函数unset()进行操作.
虽然unset()函数允许取消一个数组中的元素,弹药注意数组将不会重建索引.

<?php
$arr = [1=>'one',2=>'two',3=>'three'];

//删除数组中下标为2的元素
unset($arr[2]);
/*
    数组是 $arr = [1=>'one',3=>'three'];
    而不是 $arr = [1=>'one',2=>'three']
 */

//如果使用array_values()重新建立索引
$arr_two = array_values($arr);
//现在的变量$arr_two是 $arr_two = [1=>'one',1=>'three'];

从上面的例子中,使用unset()函数删除一个元素以后,并没有重新建立索引下标顺序.如果需要顺序的索引下标,可以使用array_values()函数重新创建索引下标顺序.

发表评论

发表评论

*

沙发空缺中,还不快抢~