Как узнать, какие элементы массива сгруппировались? К примеру, у меня есть массив PHP: $x = array(1, 1, 3, 4, 2, 2, 3); //В нем повторяется тройка, единица и двойка. array_count values($x); // Сгруппировали элементы массива Мой вопрос: как понять какие именно элементы сгруппировались, если таковая операция была, а если вообще не получилось ничего объединить, то об этом тоже нужно знать. Спасибо --- Добавлено --- Не интересует использование вардампа или принт-р, все должно быть автономно
PHP: $x = array(1, 1, 3, 4, 2, 2, 3); $grp = array(); foreach($x as $y) { if (isset($grp[$y])) $grp[$y]++; else $grp[$y] = 1; } В итоге имеем: PHP: $grp = array( 1 => 2, 3 => 2, 4 => 1, 2 => 2 ); Идем дальше - убираем несгруппированные значения: PHP: foreach($grp as $y => $cnt) if ($cnt < 2) unset($grp[$y]); Остается: PHP: $grp = array( 1 => 2, 3 => 2, 2 => 2 );
Можно использовать array_keys с необязательным вторым аргументом. https://php.ru/manual/function.array-keys.html PHP: $x = array(1, 1, 3, 4, 2, 2, 3); print_r(array_keys($x, 1)); // Array ( [0] => 0 [1] => 1 ) print_r(array_keys($x, 2)); // Array ( [0] => 4 [1] => 5 )