php去除数组中重复数据
废话不多说,直接上代码
/** *给数组排重 *与array_unique函数的区别:它要求val是字符串,而这个可以是数组/对象 * *@paramunknown_type$arr要排重的数组 *@paramunknown_type$reserveKey是否保留原来的Key *@returnunknown */ staticfunctionm_ArrayUnique($arr,$reserveKey=false) { if(is_array($arr)&&!empty($arr)) { foreach($arras$key=>$value) { $tmpArr[$key]=serialize($value).''; } $tmpArr=array_unique($tmpArr); $arr=array(); foreach($tmpArras$key=>$value) { if($reserveKey) { $arr[$key]=unserialize($value); } else { $arr[]=unserialize($value); } } } return$arr; }
代码很简单,却非常的实用,有需要的小伙伴可以直接拿去用的。
另附上其他网友的解决办法
<?php $input=array("a"=>"green","","red","b"=>"green","","blue","red","c"=>"witer","hello","witer"); //$result=array_unique($input);//去除重复元素 $result=a_array_unique($input); //只留下单一元素 foreach($resultas$aa) { echo$aa."<br/>"; } functionmulti_unique($array){ foreach($arrayas$k=>$na) $new[$k]=serialize($na); $uniq=array_unique($new); foreach($uniqas$k=>$ser) $new1[$k]=unserialize($ser); return($new1); }
functiona_array_unique($array)//写的比较好 { $out=array(); foreach($arrayas$key=>$value){ if(!in_array($value,$out)) { $out[$key]=$value; } } return$out; } ?>