php多维数组删除重复不确定这个问题是否需要删除,但我无法在其他地方找到答案,所以我会问一下。我有一个2d数组看起来如下:Array([0] => Array
(
[0] => dave [1] => jones [2] => c@b.c )[1] => Array
(
[0] => john [1] => jones [2] => a@b.c )[2] => Array
(
[0] => bruce [1] => finkle [2] => c@b.c ))我想删除那些有重复电子邮件的人。所以在上面的例子中,我想删除[] [0]或[] [2]。我并不担心检查名称或类似的东西,我只需要根据单个值对子阵列进行重复数据删除。目前我有这样的事情 if(is_array($array) && count($array)>0){
foreach ($array as $subarray) {
$duplicateEmail[$subarray[2]] = isset($duplicateEmail[$subarray[2]]);
unset($duplicateEmail[$subarray[2]]);
}
}但它只是不对。任何帮助赞赏。
3 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
一种使用数组索引唯一性的快速解决方案:
$newArr = array();foreach ($array as $val) { $newArr[$val[2]] = $val; }$array = array_values($newArr);
注意1:从上面可以看到,使用电子邮件地址的最后一个匹配而不是第一个匹配。这可以通过替换第二行来改变
foreach (array_reverse($array) as $val) {
注意2:结果数组中的索引有点混淆。但我想这没关系......
鸿蒙传说
TA贡献1865条经验 获得超7个赞
更简单的解决方案。
$unique = array_map('unserialize', array_unique(array_map('serialize', $array)));echo "<pre>";print_r($unique);
- 3 回答
- 0 关注
- 539 浏览
添加回答
举报
0/150
提交
取消