Home > php教程 > php手册 > php 删除数组中的元素

php 删除数组中的元素

WBOY
Release: 2016-06-06 20:10:11
Original
1145 people have browsed it

删除数组中的元素,第一想法是使用unset函数,它确实可以删除,但是可能会在后面操作该数组的时候出现问题。通过下面的例子来说明: $arr = array(0, 1, 2, 3, 4);$index = 2;unset($arr[$index]);echo count($arr);if (empty($arr[$index])) { echo "arr[$i

删除数组中的元素,第一想法是使用unset函数,它确实可以删除,但是可能会在后面操作该数组的时候出现问题。通过下面的例子来说明:

$arr = array(0, 1, 2, 3, 4);
$index = 2;
unset($arr[$index]);
echo count($arr);
if (empty($arr[$index])) {
    echo "arr[$index] is empty";
}
print_r($arr);
输出为:
4
arr[2] is empty
Array([0] => 0 [1] => 1 [3] => 3 [4] => 4)
Copy after login

从上面的输出结果可以看到数组的长度是正常的,但是下标还是保持原来的,所以按照下标去获取元素就会出问题。另外此方法对key-value形式的数组是安全的。

如何安全的删除元素呢?可以使用array_splice函数。array_splice()的用途是删除原始数组中指定的一系列元素,并用其他值代替(如果指定),返回值是被删除的元素。更多信息可以参考官方文档:http://php.net/manual/zh/function.array-splice.php。例如:

$arr = array(0, 1, 2, 3, 4);
$rtn = array_splice($arr, 2, 1);
echo count($arr);
print_r($arr);
print_r($rtn);
输出为:
4
Array
([0] => 0 [1] => 1 [2] => 3 [3] => 4)
Array([0] => 2)
Copy after login

如果想获取删除首位元素后的数组,则可以有两种方法:

1、
$arr = array(0, 1, 2, 3, 4);
array_splice($arr, 0, 1);
2、
$arr = array(0, 1, 2, 3, 4);
$arr = array_splice($arr, 1);
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template