php数组删除元素各种方法总结
有很多朋友都不知道怎么把数组中元素给删除,下面我来总结各种数组删除元素方法给各位.
删除数组指定元素, 代码如下:
<?php $a = array (0=> "Dog" ,1=> "Cat" ,2=> "Horse" ,3=> "Bird" ); print_r( array_slice ( $a ,1,2)); ?> //输出 Array ( [0] => Cat [1] => Horse )几个函数用下来觉得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' );从数组头删除值
array_shift()函数删除并返回数组中找到的元素,其结果是,如果使用的是数值健,则所有相应的值都会下移,而使用关联键的数组不受影响,其形式为:
mixed array_shift(array array)
下面的例子删除了$fruits数组中的第一个元素apple,代码如下:
$fruits = array ( "apple" , "banana" , "orange" , "pear" ); $fruit = array_shift ( $fruits ); // $fruits = array("banana","orange","pear") // $fruit = "apple";从数组尾删除元素
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";删除数组中间的元素, 代码如下:
function deleteElementFromArr( $arr , $index ){ if ( $index < count ( $arr )-1){ unset( $arr [ $index ]); reset( $arr ); } return $arr ; }我封装成了一个函数,方便大家使用,代码如下:
<?php function array_remove(& $arr , $offset ) { array_splice ( $arr , $offset , 1); } $arr = array ( 'apple' , 'banana' , 'cat' , 'dog' ); array_remove( $arr , 2); print_r( $arr ); ?>删除数组重复元素, 代码如下:
<?php function assoc_unique( $arr , $key ) { $tmp_arr = array (); foreach ( $arr as $k => $v ) { if (in_array( $v [ $key ], $tmp_arr )) { unset( $arr [ $k ]); } else { $tmp_arr [] = $v [ $key ]; } } sort( $arr ); return $arr ; } $aa = array ( array ( 'id' => 123, 'name' => '张三' ), array ( 'id' => 123, 'name' => '李四' ), array ( 'id' => 124, 'name' => '王五' ), array ( 'id' => 125, 'name' => '赵六' ), array ( 'id' => 126, 'name' => '赵六' ) ); $key = 'name' ; assoc_unique(& $aa , $key ); print_r( $aa ); ?>查看更多关于php数组删除元素各种方法总结 - php数组的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31189