PHP中unset,array_splice删除数组中的元素区别

如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排:

 代码如下 复制代码

<?php 
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>

结果是:

Array ( [0] => a [2] => c [3] => d )

 
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():

 代码如下 复制代码

<?php 
$arr = array('a','b','c','d'); 
array_splice($arr,1,1); 
print_r($arr);
?>

结果是:

Array ( [0] => a [1] => c [2] => d )

 
删除数组中特定元素

 代码如下 复制代码

<?php
$arr2 = array(1,3, 5,7,8);
foreach ($arr2 as $key=>$value)
{
    if ($value === 3)
        unset($arr2[$key]);
}
var_dump($arr2);
?>

补充删除空数组

实例:

 代码如下 复制代码

<?php
    $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>"");
    array_filter($array);
    echo "<pre>";
    print_r($array);
?>
结果:

Array (
     [a] => abc
     [b] => bcd
     [c] => cde
    [d] => def
)

总结

array_splice()函数删除的话,数组的索引值也变化了。
unset()函数删除的话,数组的索引值没有变化。

时间: 2024-10-27 01:45:10

PHP中unset,array_splice删除数组中的元素区别的相关文章

PHP中unset,array_splice删除数组中元素的区别_php技巧

如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排: <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> 结果是: Array ( [0] => a [2] => c [3] => d )   那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice(): <?php $arr = array('a','b','c','d

c#中,如何删除数组中既定的元素,得到删除后的新数组?

问题描述 c#中,如何删除数组中既定的元素,得到删除后的新数组? RT,比如a[10]={0,1,2,3,4,5,6,7,8,9}; b[4]={1,3,5,6}; 删除a中b的数后得到新的数组c,应该怎么做? 解决方案 int[] c = a.Except(b).ToArray(); 解决方案二: 没有在数组中删除元素的做法,新数组得创建 解决方案三: 删除数组中存在重复的元素.删除ary数组中的和keyword中相同的元素,其余的不变并输出 解决方案四: 要重新分配数组,把新内容复制过去

php使用unset()删除数组中某个单元(键)的方法

 这篇文章主要介绍了php使用unset()删除数组中某个单元(键)的方法,实例分析了unset函数在删除数组单元时的使用技巧,需要的朋友可以参考下     本文实例讲述了php使用unset()删除数组中某个单元(键)的方法.分享给大家供大家参考.具体分析如下: unset既可以删除变量,也可以删除数组中某个单元.但要注意的是,数组不会重建索引. 实例如下: ? 1 2 3 4 5 6 <?php $arr = array("朝阳区","海淀区","

php使用unset()删除数组中某个单元(键)的方法_php技巧

本文实例讲述了php使用unset()删除数组中某个单元(键)的方法.分享给大家供大家参考.具体分析如下: unset既可以删除变量,也可以删除数组中某个单元.但要注意的是,数组不会重建索引. 实例如下: <?php $arr = array("朝阳区","海淀区","西城区","东城区","丰台区"); unset($arr[3]); echo "<pre>"; pr

PHP删除数组中特定元素的两种方法

这篇文章介绍了PHP中删除数组中特定元素的两种方法,有需要的朋友可以参考一下   方法一: 复制代码 代码如下: <?php $arr1 = array(1,3, 5,7,8); $key = array_search(3, $arr1); if ($key !== false)     array_splice($arr1, $key, 1); var_dump($arr1); ?> 输出: array(4) { [0]=> int(1) [1]=> int(5) [2]=>

php删除数组中重复元素的方法_php技巧

几种php删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法.方法一.完整删除重复数组实例-----删除数组中的一个元素 function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_value

php 删除数组中的元素实例程序

通过下面的例子来说明:  代码如下 复制代码 $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

php删除数组中的空值或指定值操作

首先我们来看看关于php如何操作数组中的空值的多种方法 implode(); 此函数可参考http://www.111cn.net/phper/29/2dc95be9381b4bb1753083c09fda1a36.htm 用implode()将数组输出为字符串,判断输出的字串是否为空.初看上去似乎是个不错的方法,可惜跟上一点一样,对于二维以上数组就不行了.举个例子:  代码如下 复制代码 $arr= array(array(),array(),array()); $str = implode(

删除数组中指定元素多种方法

//方法一 $array = array(1,2,3,4,5); $str =3; $len = count( $array ); for( $i=0;$i<$len; $i++) {  if( $array[$i] == $str )  {   unset( $array[$i] );  } } print_r( $array ); /* Array (     [0] => 1     [1] => 2     [3] => 4     [4] => 5 ) */ //按