найти в массиве одинаковые значения и сложить в массив
Всем привет.
Необходимо найти в массиве одинаковые значения и сложить в другой массив.
$ar = [
1 => 'один',
2 => 'два',
3 => 'два',
4 => 'два',
5 => 'три',
6 => 'три',
7 => 'четыре',
8 => 'пять',
9 => 'шесть',
];
// результат ниже
$arrrr = [
1 => [2,3,4],
2 => [5,6]
];
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
можно собрать обычным циклом и отобрать нужные при помощи array_filter
$res = [];
foreach($ar as $k=>$v) {
$res[$v][] = $k;
}
$res = array_filter($res, function($x) { return sizeof($x) > 1;});
$res = array_map(function($x) { return implode(', ', $x); }, $res);
результат
Array
(
[два] => 2, 3, 4
[три] => 5, 6
)
можно сбросить индексы массива, если они не нужны, при помощи array_values()