如果我们是一维数据去重复项就不要说了有直接的函数了,但二维数据php未提供函数了,下面小编来给大家推荐两个不错的二维数组去重复项自定义函数吧. 
	例1代码如下: 
	
		- 
			function unique_array_2d($array2D,$stkeep=false,$ndformat=true) 
 
		- 
			{ 
 
		- 
			        
 
		- 
			       if($stkeep) $stArr = array_keys($array2D); 
 
		- 
			 
 
		- 
			        
 
		- 
			       if($ndformat) $ndArr = array_keys(end($array2D)); 
 
		- 
			 
 
		- 
			        
 
		- 
			       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') 
 
		- 
			); 
 
		- 
			 
 
		- 
			echo "<pre>"; 
 
		- 
			print_r(unique_array_2d($array2D,true)); 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			function array_multunique($arr,$by = array()) { 
 
		- 
			       $temp = array(); 
 
		- 
			       foreach($arr as $key => $val) { 
 
		- 
			               foreach($by as $v) { 
 
		- 
			                       $temp[$key] .= isset($val[$v]) ? $val[$v] : ''; 
 
		- 
			               } 
 
		- 
			       } 
 
		- 
			       return array_intersect_key($arr,array_unique($temp)); 
 
		- 
			} 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			function array_remove_key($array,$keys){ 
 
		- 
			       if (!is_array($array) || !is_array($keys)){ 
 
		- 
			               return false; 
 
		- 
			       } 
 
		- 
			       foreach($array as $t){ 
 
		- 
			               foreach($keys as $k){ 
 
		- 
			                       unset($t[$k]); 
 
		- 
			               } 
 
		- 
			               $doc[]=$t; 
 
		- 
			       } 
 
		- 
			       return $doc; 
 
		- 
			 
 
		- 
			} 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			function array_remove_key_val(&$a,$b,$c){ 
 
		- 
			       foreach ($a as $key=>$value){ 
 
		- 
			               if ( isset($value[$b]) && ($value[$b]==$c) ){ 
 
		- 
			                       unset($a[$key]); 
 
		- 
			               } 
 
		- 
			       } 
 
		- 
			} 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
	 
 
	例2代码如下: 
	
		- 
			/二维数组去掉重复值 
 
		- 
			function array_unique_fb($array2D){ 
 
		- 
			     foreach ($array2D as $v){ 
 
		- 
			         $v = join(",",$v);   
 
		- 
			         $temp[] = $v; 
 
		- 
			     } 
 
		- 
			     $temp = array_unique($temp);     
 
		- 
			    foreach ($temp as $k => $v){ 
 
		- 
			        $temp[$k] = explode(",",$v);    
 
		- 
			    } 
 
		- 
			    return $temp; 
 
		- 
			} 
 
		- 
			 
 
		- 
			 
 
		- 
			 
 
		- 
			function array_unique_fb($array2D){ 
 
		- 
			    foreach ($array2D as $k=>$v){ 
 
		- 
			        $v = join(",",$v);   
 
		- 
			  $temp[$k] = $v; 
 
		- 
			    } 
 
		- 
			 $temp = array_unique($temp);     
 
		- 
			    foreach ($temp as $k => $v){ 
 
		- 
			        $array=explode(",",$v);   
 
		- 
			  $temp2[$k]["id"] =$array[0];    
 
		- 
			  $temp2[$k]["litpic"] =$array[1]; 
 
		- 
			  $temp2[$k]["title"] =$array[2]; 
 
		- 
			  $temp2[$k]["address"] =$array[3]; 
 
		- 
			  $temp2[$k]["starttime"] =$array[4]; 
 
		- 
			  $temp2[$k]["endtime"] =$array[5]; 
 
		- 
			  $temp2[$k]["classid"] =$array[6]; 
 
		- 
			  $temp2[$k]["ename"] =$array[7]; 
 
		- 
			 } 
 
		- 
			    return $temp2; 
 
		- 
			} 
 
		- 
			 
 
	 
 (责任编辑:最模板) |