- array_count_values: documentation ( source)
- implode: documentation ( source)
- explode: documentation ( source)
- array_walk: documentation ( source)
<?php
$in = [
'2,24',
'2,2,9,12'
];
$out = [];
foreach($in as $item) {
$norm = explode(',', $item);
$ar = array_count_values($norm);
$pos = [];
$out[] = &$pos;
array_walk($ar, function ($val, $key) use(&$pos) {
if($val > 1) {
$pos[] = $key . '(' . $val . ')';
} else {
$pos[] = $key;
}
});
unset($pos);
}
foreach($out as $listItem) {
echo implode(',', $listItem) , PHP_EOL;
}