PHP删除数组重复元素函数
文章列出一三种删除数组中重复元素函数与实例代码,前二种是利用循环来判断删除重复的数组值,最后一种是比经典的,利用了array_flip()的特性,把值变成键名,再返回重复键名就会丢失,实例代码如下:
function delsame(& $array ) { $i = 0; while (isset( $array [ $i ])) { $j = $i + 1; while (isset( $array [ $j ])) { if ( $array [ $i ] == $array [ $j ]) //如果发现后面有重复的元素 { delmember( $array , $j ); //把它删除 $j --; //重新检查补上来的元素是否是重复的 } $j ++; } //开源代码phpfensi测试数据 $i ++; } }删除数组中重复元素的函数,代码如下:
function delmember(& $array , $id ) { $size = count ( $array ); for ( $i = 0; $i < $size - $id - 1; $i ++) { $array [ $id + $i ] = $array [ $id + $i + 1]; } unset( $array [ $size - 1]); }使用例子,代码如下:
$output = array (1, 2, 2, 'HdhCmsTestphpfensi测试数据' , 5, 4, 4, 4, 2, 7, 5, 9, 10); delsame( $output ); while (list( $key , $value ) = each( $output )) { echo "$key:$value" . "<br>" ; } //方法二,代码如下: function uniquearray( $array ) { // get unique elts as keys in assoc. array for ( $i =0, $n = count ( $array , 1); $i < $n ; $i ) $u_array [ $array [ $i ]] = 1; // copy keys only into another array reset( $u_array , 1); for ( $i =0, $n = count ( $u_array , 1); $i < $n ; $i ) { $unduplicated_array [] = key( $u_array , 1); next( $u_array , 1); } return $unduplicated_array ; } //方法三,代码如下: $hills = array ( "first" => "data1" , "second" => "HdhCmsTest111cn.net" , "third" => "data1" ); //开源代码phpfensi测试数据 $hills = array_flip ( $hills ); //还原键名 $hills1 = array_flip ( array_flip ( $hills )); //删除重复 print_r( $hills1 );array array_flip ( array trans )
array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名.
注意 trans 中的值需要能够作为合法的键名,例如需要是 integer 或者 string,如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转.
如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了.
array_flip() 如果失败返回 false.
查看更多关于PHP删除数组重复元素函数 - php数组的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did31262