0

我正在尝试根据以下数组的“duplicate_check”删除重复项。似乎 array_unique 和 super_unique 函数都不起作用。我还尝试将两个相同的数组与循环函数中的循环进行比较,但由于数组中有数万行,所以时间用完了。有什么帮助吗?

[1] => Array
    (
        [a] => abc
        [b] => 202
        [c] => 001
        [d] => 
        [e] => Graphic Commun
        [duplicate_check] => abc202001
    )

[2] => Array
    (
        [a] => abc
        [b] => 211
        [c] => 001
        [d] => Bard
        [e] => CAD Fundamentals
        [duplicate_check] => abc211001
    )
 [3] => Array
    (
        [a] => abc
        [b] => 211
        [c] => 001
        [d] => 
        [e] => 
        [duplicate_check] => abc211001
    )
4

1 回答 1

0

好吧,我不知道您尝试过的方法(您应该将其添加到您的问题中)。但似乎您应该只使用循环来过滤条目:

$found = array();
foreach ($array as $i=>$row) {

    $check = "$row[a],$row[b],$row[c]";
    //$check = $row["duplicate_check"];

    if (@$found[$check]++) {
        unset($array[$i]);
    }
}

一个懒惰的解决方案(但可能不是你的任务)也可能是:

=array_map("unserialize", array_unique(array_map("serialize", $array)));
于 2011-03-20T04:55:35.593 回答