通过下面的例子来说明:
代码如下 复制代码
$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)从上面的输出结果可以看到数组的长度是正常的,但是下标还是保持原来的,所以按照下标去获取元素就会出问题。另外此方法对key-value形式的数组是安全的。
如何安全的删除元素呢?可以使用array_splice函数。array_splice()的用途是删除原始数组中指定的一系列元素,并用其他值代替(如果指定),返回值是被删除的元素。
代码如下 复制代码
$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)如果想获取删除首位元素后的数组,则可以有两种方法:
代码如下 复制代码
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);
还有array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值.
相对的array_pop() 函数删除数组中的最后一个元素.
array_pop()函数删除并返回数组的最后一个元素。其形式为:
mixed array_pop(aray target_array);
下面的例子从$states数组删除了最后的一个州:
代码如下 复制代码
$fruits = array(apple,banana,orange,pear);
$fruit = array_pop($fruits);
//$fruits = array(apple,banana,orange);
//$fruit = pear;
array_filter()删除数组中的空元素
函数名:array_filter()
调用方式:array_filter($array)
参数说明:$array 是操作的对象,我们将删除其中的空元素
实例:
代码如下 复制代码
abc, 'b' => bcd,'c' =>cde,'d' =>def,'e'=>);
array_filter($array);
echo
;
print_r($array);
?>
结果:
array ( [a] => abc
[b] => bcd
[c] => cde
[d] => def
)
几个函数用下来觉得array_search()比较实用
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false
代码如下 复制代码
$array = array('1', '2', '3', '4', '5');
$del_value = 3;
unset($array[array_search($del_value , $array)]);//利用unset删除这个元素
print_r($array);
输出
array('1', '2', '4', '5');
http://www.bkjia.com/phpjc/631257.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/631257.htmltecharticle在php中数组量子力学个非常好用的数组类型,下面我来总结一些删除数组元素的各种方法,删除数组中的元素,第一想法是使用unset函数,它...
