//二维数组去掉重复值
/*
* $array 二维数组
* $stkey 一级数组键是否保留(可为非数字) true:保留 false:不保留
* $ndkey 一级数组键是否保留(二级数组键必须相同) true:保留 false:不保留
*/
function remove_repeat($array, $stkey = false, $ndkey = true)
{
//任意string
$joinstr = ',';
//判断是否保留一级数组
if ($stkey){
$stArr = array_keys($array);
}
//判断是否保留二级数组
if ($ndkey) {
$ndArr = array_keys(end($array));
}
//降维,也可以用implode(),拼接成字符串,用逗号隔开
foreach ($array as $v) {
$v = join($joinstr, $v);
$temp[] = $v;
}
//去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
//再将拆开的数组重新组装成二维数组
foreach ($temp as $k => $v) {
if ($stkey) {
$k = $stArr[$k];
}
if ($ndkey) {
$tempArr = explode($joinstr, $v);
foreach ($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
} else{
$output[$k] = explode($joinstr, $v);
}
}
//返回去重后的二维数组
return $output;
}
php去掉二维数组中的重复项
最新推荐文章于 2023-03-13 23:18:57 发布