PHP数组操作之怎样删除数组中的首尾元素?
在之前的文章《怎样解决PHP中数组的排序和打乱问题?》中详细的介绍了PHP中数组排序的相关知识,本篇文章我们来看一下PHP中删除数组头部或者尾部元素操作的相关知识,希望对大家有帮助!
在上一篇文章中我们了解了想要将多个数组进行排序可以使用array_multisort
函数,想要将数组内的元素进行打乱的话可以使用shuffle
函数来实现,这些都是数组操作中比较常见的操作,下面我们来看一下在PHP中怎样才能完成删除数组中的第一个元素或者删除数组中的最后一个元素。
在PHP中内置了array_shif
函数来删除数组中的第一个元素,还有array_pop
函数用来删除数组中的最后一个元素,下面我们就分别来看一下这两种函数的用法。虽然都是删除元素,这两个函数不同于unset
函数和array_splice
函数,本篇介绍的两种函数不需要知道数组元素的键值和键名。
array_shif
函数-删除数组第一个元素
在PHP中可以通过array_shif
函数来对数组元素进行删除第一个的操作,array_shif
函数的基本语法格式如下:
array_shift(array)
其中需要注意的是:
参数array
表示的就是需要进行删除操作的数组,函数运行成功后返回的结果是被删除元素的值,如果函数运行不成功则返回的结果是NULL
。如果数组中的键名是数字的话,通过函数删除元素之后键名会重新进行分配,从0
开始后面是1
以此类推。
下面我们通过示例来看一下array_shift
函数的使用,示例如下:
<?php $num = array(10, 45, 9, 100, 6); array_shift($num); //删除数组开头的第一个元素 print_r($num); ?>
输出结果:
上述示例中,通过array_shift
函数删除了数组元素中的第一个元素,下面我们来看一下如果数组中的键名是数字会对输出结果有什么影响,示例如下:
<?php $num = array(10, 45, 9, 100, 6); array_shift($num); //删除数组开头的第一个元素 print_r($num); echo '<br/>'; $num1 = array(12=>10, 15=>45, 18=>9, 20=>100, 22=>6); array_shift($num1); //删除数组开头的第一个元素 print_r($num1); ?>
输出结果:
上述示例中可以看出,当数组中的键名为数字的时候,通过array_shift
函数来删除第一个数组元素的时候会重新从0
开始分配键名。
上述中我们了解到了可以通过array_shift
函数来删除数组中的第一个元素,那下面我们来看一下怎样通过array_pop
函数来删除数组元素中的最后一个元素。
array_pop
函数-删除最后一个元素
在PHP中与array_shift
函数类似的是,我们可以通过array_pop
函数来删除数组元素中的最后一个元素,array_pop
函数的基本语法格式如下:
array_pop(array)
其中需要注意的是:
参数array
就是需要进行删除操作的数组,函数执行成功的话返回的结果就是被删除的元素,如果数组为空或者参数不是数组,那么返回的结果就是NULL
。
下面我们通过示例来看一下array_pop
函数的使用,示例如下:
<?php $num = array(10, 45, 9, 100, 6); array_pop($num); //删除数组最后的一个元素 print_r($num); ?>
输出结果:
上述示例便是通过array_pop
函数来将数组中的最后一个元素进行删除,
在通过array_shif
函数删除第一个元素的时候我们了解到,当数组的键名是数字的时候,键名会重新分配,那么当我们使用array_pop
函数来对数组进行删除最后一个元素操作的时候,如果数组中元素的键名是数字的话,键名会被重新分配吗?
我们我们通过示例来验证一下,看看array_pop
函数会不会对数字键名产生影响,示例如下:
<?php $num = array(10, 45, 9, 100, 6); array_pop($num); //删除数组最后的一个元素 print_r($num); echo '<br/>'; $num1 = array(12=>10, 15=>45, 18=>9, 20=>100, 22=>6); array_pop($num1); //删除数组最后的一个元素 print_r($num1); ?>
输出结果:
通过上述示例能够发现,通过array_pop
函数删除数组中的最后一个元素,并不会像array_shif
函数一样遇到数字为键名的时候会重新分配键名。array_pop
函数不会重新分配键名。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。