function get_keys_for_duplicate_values($my_arr, $clean = false) {
if ($clean) {
return array_unique($my_arr);
}
$dups = $new_arr = array();
foreach ($my_arr as $key => $val) {
if (!isset($new_arr[$val])) {
$new_arr[$val] = $key;
} else {
if (isset($dups[$val])) {
$dups[$val][] = $key;
} else {
$dups[$val] = array($key);
// Comment out the previous line, and uncomment the following line to
// include the initial key in the dups array.
// $dups[$val] = array($new_arr[$val], $key);
}
}
}
return $dups;
}
显然功能名称有点长;)
现在$dups将包含由重复值键入的多维数组,其中包含每个重复的键,如果发送“true”作为第二个参数,它将返回原始数组而不重复的值.
或者,您可以将原始数组作为参考传递,并在返回重复数组时相应调整它