PHP возвращает повторяющиеся значения из массива

У меня есть массив, который имеет несколько повторяющихся значений. Теперь я хочу получить эти дубликаты значений.

           $roQ = Array
(
[0] => 2123
[1] => 2094
[2] => 2105
[3] => 2160
[4] => 2143
[5] => 2148
[6] => 2154
[7] => 2155
[8] => 2145
[9] => 2123
[10] => 2149
[11] => 2143
[12] => 2145

)

я попробовал следующий код, который не работает. возвращает неверный результат.
как получить все повторяющиеся значения в новом массиве.

   $c = array_count_values($roQ);
$val = array_search(max($c), $c);
$azq[] = $val;

1

Решение

Попробуйте с —

$arr = array(1, 4, 6, 1, 8, 9, 4, 6);

$unique = array_unique($arr);

$duplicates = array_diff_assoc($arr, $unique);

var_dump($duplicates);
0

Другие решения

$roQ = Array
(
[0] => 2123
[1] => 2094
[2] => 2105
[3] => 2160
[4] => 2143
[5] => 2148
[6] => 2154
[7] => 2155
[8] => 2145
[9] => 2123
[10] => 2149
[11] => 2143
[12] => 2145

)

for($i=0; $i<= count($roQ), $i++){

if(!in_array($roQ[$i],$arr){

$unique_value[] = $roQ[$i];

}else {

$dublicate_array[]=$roQ[$i]

}

array_push($arr, $req[$i]);

}
0

Попробуйте этот код, он отображает дубликаты элементов в массиве.

$array = array(
0 => 2123,
1 => 2094,
2 => 2105,
3 => 2160,
4 => 2143,
5 => 2148,
6 => 2154,
7 => 2155,
8 => 2145,
9 => 2123,
10 => 2149,
11 => 2143,
12 => 2145

);
$arrayNew = array_count_values($array);
$finalArr = array ();
$i=0;
foreach ($arrayNew as $key => $Array_new){
if($Array_new>1){

$finalArr[$i]  = $key;
$i++;
}
}
echo "<pre>";
print_r($finalArr);
exit;
}
0