@Hannskod

Как получить список повторяющихся элементов массива?

Добрый день как получить список повторяющихся элементов массива ?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 3
@ffosters
$values = array('a', 'a', 'b', 'c', 'c');

$result = array_keys(array_filter(array_count_values($values), function($v){
   return $v > 1;
}));

print_r($values);
print_r($result);

Array
(
    [0] => a
    [1] => a
    [2] => b
    [3] => c
    [4] => c
)
Array
(
    [0] => a
    [1] => c
)
Ответ написан
Первый пример тут: php.net/manual/ru/function.array-count-values.php

Пример #1 Пример использования array_count_values()

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>


Результат выполнения данного примера:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)


Потом обходим результат выполнения функции через foreach или array_filter и выводим только те ключи, у которых значение больше 1.

<?php
$array = array(1, "hello", 1, "world", "hello");
$array_count = array_count_values($array);
$duplicates = [];
foreach ($array_count as $k=>$v){
    if ($v > 1) $duplicates[] = $k;
}
print_r($duplicates);
?>
Ответ написан
Возможно вам поможет:
function array_duplicates($arr)
{
    $arrUnique = array_unique(array_map("strtoupper", $arr));
    $duplicates = array_diff($arr, $arrUnique);
    return $duplicates;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
от 2 000 до 4 000 usd.
Teamlead Краснодар
До 100 000 руб.
HTML Academy Санкт-Петербург
от 130 000 до 140 000 руб.
18 авг. 2018, в 17:54
6000 руб./за проект
18 авг. 2018, в 16:00
60000 руб./за проект