好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中array_unique去除二维数组中重复的数组 - php数

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数的详细内容...

  阅读:39次