In questo articolo vedremo come marcare gli elementi duplicati in un array con PHP.
Possiamo implementare la seguente soluzione:
function remove_duplicates($nums = []) {
$uniques = [];
$duplicates = [];
foreach($nums as $num) {
if(!in_array($num, $uniques)) {
$uniques[] = $num;
} else {
$duplicates[] = '_';
}
}
return [
'count' => count($uniques),
'nums' => array_merge($uniques, $duplicates)
];
}
La funzione restituisce il numero complessivo di valori univoci ed un array che pone i valori duplicati contrassegnati dal carattere _
alla fine dell'array. Esempio d'uso:
$tests = [[1, 1, 2], [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]];
foreach($tests as $test) {
print_r(remove_duplicates($test));
}