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; } ?>