php关于数组去重的理解

之前在工作中遇到过多维数组的重复,再手册和网上查到了方法。

说我我的理解和方法总结:

1.一维数组去重就不多说了,array_unique函数自己去查手册。

2.二维数组的去重:

//二维数组去掉重复值 
function array_unique_fb($array2D) 

foreach ($array2D as $v) 

$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 
$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); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 
$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; 

如果数据表的内容过多,所以写起来相对麻烦,而且如果数据表的字段是没有值的话,就会出现键不对值。

这样我们可以用:

 $out = array();
foreach ($info as $key=>$value) {
if (!in_array($value, $out))
{
$out[$key] = $value;
}
}
        $info= $out;

这个方法就可以解决的,而且非常简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值