php中array_unique去除二维数组中重复的数组
一个利用php中array_unique实现去除二级数组重复值的方法,有需要的朋友可参考参考.
实例代码如下:
<?php $input = array ([a] => [green],]", [red],]b] => [green], [],]blue], [red],]c] => [witer],]hello],]witer]); //$result = array_unique($input); //去除重复元素 $result = a_array_unique( $input );?? //只留下单一元素 foreach ( $result as $aa ) { echo $aa .]<br />]; } function multi_unique( $array ) { foreach ( $array as $k => $na ) $new [ $k ] = serialize( $na ); $uniq = array_unique ( $new ); foreach ( $uniq as $k => $ser ) $new1 [ $k ] = unserialize( $ser ); return ( $new1 ); } function a_array_unique( $array ) //写的比较好 { $out = array (); foreach ( $array as $key => $value ) { if (!in_array( $value , $out )) { $out [ $key ] = $value ; } } return $out ; } ?>array_unique函数只适用于一维数组,对多维数组并不适用,但是我们利用遍历数据然后再进行操作就可以实现array_unique去除重复数组了.
实例代码如下:
function unique_arr( $array2D , $stkeep =false, $ndformat =true) { // 判断是否保留一级数组键 (一级数组键可以为非数字) if ( $stkeep ) $stArr = array_keys ( $array2D ); // 判断是否保留二级数组键 (所有二级数组键必须相同) if ( $ndformat ) $ndArr = array_keys ( end ( $array2D )); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 foreach ( $array2D as $v ){ $v = join([,], $v ); $temp [] = $v ; } //去掉重复的字符串,也就是重复的一维数组 $temp = array_unique ( $temp ); //再将拆开的数组重新组装 foreach ( $temp as $k => $v ) { if ( $stkeep ) $k = $stArr [ $k ]; if ( $ndformat ) { $tempArr = explode ([,], $v ); foreach ( $tempArr as $ndkey => $ndval ) $output [ $k ][ $ndArr [ $ndkey ]] = $ndval ; } else $output [ $k ] = explode ([,], $v ); } return $output ; } $array2D = array (‘first’=> array (‘title’=>’1111′,’ date ’=>’2222′),’second’=> array (‘title’=>’1111′,’ date ’=>’2222′),’third’=> array (‘title’=>’2222′,’ date ’=>’3333′)); print_r( $array2D ); print_r(unique_arr( $array2D ,true));查看更多关于php中array_unique去除二维数组中重复的数组 - php数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31156