在網(wǎng)上找到很簡潔的實用的方法:
1壳嚎、使用“array_map('serialize', $arr)”將多維數(shù)組轉(zhuǎn)換為以字符串形式的一維數(shù)組窗慎。
2绸栅、使用array_unique()去除一維數(shù)組中的重復(fù)值坟桅。
3、將去重后的一維數(shù)組重新轉(zhuǎn)為多維數(shù)組丈秩。
實例:
function array_unique_new($arr) {
$t = array_map('serialize', $arr);
//利用serialize()方法將數(shù)組轉(zhuǎn)換為以字符串形式的一維數(shù)組
$t = array_unique($t);
//去掉重復(fù)值
$new_arr = array_map('unserialize', $t);
//然后將剛組建的一維數(shù)組轉(zhuǎn)回為php值
return $new_arr;
}
以上就是本次主題的所有內(nèi)容了,下面是自己跟進PHP可用函數(shù)淳衙,仿寫的一個去重函數(shù)可忽略蘑秽。
/**
* 二維數(shù)組去重
* @param array $arr
* @return array
*/
private static function arrayUnique ($data=[])
{
$tmp = array();
foreach ($data as $key => $value) {
foreach ($value as $key1 => $value1) {
$value[$key1] = $key1 . '_|_' . $value1;
}
$tmp[$key] = implode(',|,', $value);
}
$tmp = array_unique($tmp);
$newArr = array();
foreach ($tmp as $k => $tmp_v) {
$tmp_v2 = explode(',|,', $tmp_v);
foreach ($tmp_v2 as $k2 => $v2) {
$v2 = explode('_|_', $v2);
$tmp_v3[$v2[0]] = $v2[1];
}
$newArr[$k] = $tmp_v3;
}
return $newArr;
}