| 
       在php中数组量子力学个非常好用的数组类型,下面我来总结一些删除数组元素的各种方法,删除数组中的元素,第一想法是使用unset函数,它确实可以删除,但是可能会在后面操作该数组的时候出现问题。 
通过下面的例子来说明,代码如下: 
	
	- $arr = array(0, 1, 2, 3, 4); 
 
	- $index = 2; 
 
	- unset($arr[$index]); 
 
	- echo count($arr); 
 
	- if (emptyempty($arr[$index])) { 
 
	-     echo "arr[$index] is empty"; 
 
	- } 
 
	- print_r($arr); 
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	 
 
从上面的输出结果可以看到数组的长度是正常的,但是下标还是保持原来的,所以按照下标去获取元素就会出问题,另外此方法对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); 
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	 
 
如果想获取删除首位元素后的数组,则可以有两种方法,代码如下: 
	
	-  
 
	- $arr = array(0, 1, 2, 3, 4); 
 
	- array_splice($arr, 0, 1); 
 
	-  
 
	- $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);  
 
	-  
 
	- /$fruit = "pear"; 
 
	 
 
array_filter()删除数组中的空元素 
函数名:array_filter() 
调用方式:array_filter($array) 
参数说明:$array 是操作的对象,我们将删除其中的空元素 
实例代码如下: 
	
	- <?php 
 
	-     $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>""); 
 
	-     array_filter($array); 
 
	-     echo "<pre>"; 
 
	-     print_r($array); 
 
	- ?> 
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	-  
 
	 
 
几个函数用下来觉得array_search()比较实用 
array_search() 函数与 in_array() 一样,在数组中查找一个键值,如果找到了该值,匹配元素的键名会被返回,如果没找到,则返回 false,代码如下: 
	
	- $array = array('1', '2', '3', '4', '5'); 
 
	- $del_value = 3; 
 
	- unset($array[array_search($del_value , $array)]); 
 
	- print_r($array); 
 
	-  
 
	 
 
      
      (责任编辑:admin) |