最近有个查询时不能去重的,用数组去重函数0123和123也会判断为重复,以下是解决方法
2022-06-27 10:36:13 2025-05-22 06:07:11 PHP 384 views
function array_unique_fb($array2D=[]) {
$temp = [];
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;
}
/**
* @param [type] $array2D [二维数组]
* @param [type] $keys [全部键名]
* @return [type] [去重后的数组]
*/
function array_unique_fb($array2D=[], $keys=[]){
$temp = [];
$temp2 = [];
foreach ($array2D as $k=>$v){
$v=join(',',$v);
$temp[$k]=$v;
}
$temp=array_unique($temp);
foreach ($temp as $k => $v){
$array=explode(',',$v);
foreach($keys as $index => $key)
{
$temp2[$k][$key] = $array[$index];
}
}
return $temp2;
}
/**
* @param [type] $arr [description]
* @param [type] $key [description]
* @return [type] [description]
*/
function array_unset_tt($arr=[],$key=[]){
//建立一个目标数组
$res = array();
foreach ($arr as $value) {
//查看有没有重复项
if(isset($res[$value[$key]])){
unset($value[$key]);
}else{
$res[$value[$key]] = $value;
}
}
return $res;
}