我们在处理PHP数组的时候,经常发现数组中有很多重复数据,这个时候需要去重多为数组中的重复值,接下来为大家详细的介绍一下php多维数组去除重复值的方法,有需要的小伙伴可以参考一下:
php多维数组怎么去除重复值
1、解决思路:
(1)、使用“array_map(‘serialize’, $arr)”将多维数组转换为以字符串形式的一维数组;
(2)、使用array_unique()去除一维数组中的重复值;
(3)、将去重后的一维数组重新转为多维数组。
2、PHP方法:
/* 多维数组去重
*/
function ArrayUnique($arr) {
//利用serialize()方法将数组转换为以字符串形式的一维数组
$t = array_map(‘serialize’, $arr);
//去掉重复值
t
=
a
r
r
a
y
u
n
i
q
u
e
(
t = array_unique(
t=arrayunique(t);
//然后将刚组建的一维数组转回为php值
$new_arr = array_map(‘unserialize’, $t);
//键值重组
n
e
w
a
r
r
=
a
r
r
a
y
v
a
l
u
e
s
(
new_arr = array_values(
newarr=arrayvalues(new_arr);
return $new_arr;
}
3、实例测试:
$arr = array(
array(‘web_name’ => ‘吾爱’, ‘en_name’ => ‘itbc’,‘pinyin’ => ‘wuai’),
array(‘web_name’ => ‘吾爱1’, ‘en_name’ => ‘itbc’,‘pinyin’ => ‘wuai’),
array(‘web_name’ => ‘吾爱’, ‘en_name’ => ‘itbc’,‘pinyin’ => ‘wuai’),
array(‘web_name’ => ‘吾爱2’, ‘en_name’ => ‘itbc’,‘pinyin’ => ‘wuai’),
array(‘web_name’ => ‘吾爱3’, ‘en_name’ => ‘itbc’,‘pinyin’ => ‘wuai’),
);
n
e
w
a
r
r
=
A
r
r
a
y
U
n
i
q
u
e
(
new_arr = ArrayUnique(
newarr=ArrayUnique(arr);
print_r($new_arr);
4、测试结果
Array
(
[0] => Array
(
[web_name] => 吾爱
[en_name] => itbc
[pinyin] => wuai
)
[1] => Array
(
[web_name] => 吾爱1
[en_name] => itbc
[pinyin] => wuai
)
[2] => Array
(
[web_name] => 吾爱2
[en_name] => itbc
[pinyin] => wuai
)
[3] => Array
(
[web_name] => 吾爱3
[en_name] => itbc
[pinyin] => wuai
)
)