我正在尝试为以下数组删除基于'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
)发布于 2011-03-20 12:55:36
嗯,我不知道你尝试过的方法(你应该把它加到你的问题中)。但是看起来你应该使用一个循环来过滤条目:
$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)));https://stackoverflow.com/questions/5366822
复制相似问题