Ответ 1
Вы можете использовать комбинацию array_unique
, array_diff_assoc
и array_diff
:
array_diff($arr, array_diff_assoc($arr, array_unique($arr)))
Прежде всего, я хотел бы указать всем, что вы дублируете охотников за вопросом, что этот вопрос не полностью отвечает на мой вопрос.
Теперь у меня есть массив. Мы скажем, что массив array(1, 2, 2, 3, 4, 3, 2)
Мне нужно удалить дубликаты. Не только один из дубликатов, но и все, так что результат будет array(1, 4)
Я посмотрел array_unique(), но это приведет только к array(1, 2, 3, 4)
Любые идеи?
Вы можете использовать комбинацию array_unique
, array_diff_assoc
и array_diff
:
array_diff($arr, array_diff_assoc($arr, array_unique($arr)))
function removeDuplicates($array) {
$valueCount = array();
foreach ($array as $value) {
$valueCount[$value]++;
}
$return = array();
foreach ($valueCount as $value => $count) {
if ( $count == 1 ) {
$return[] = $value;
}
}
return $return;
}