How to delete duplicates in an array?
arrays, php
Solution
Depending on PHP version, this should work in all versions of PHP >= 4.0.6 as it doesn't require anonymous functions that require PHP >= 5.3:
function moreThanOne($val) {
return $val < 2;
}
$a1 = array('1','1','2','3');
print_r(array_keys(array_filter(array_count_values($a1), 'moreThanOne')));
DEMO (Change the PHP version in the drop-down to select the version of PHP you are using)
This works because:
- `array_count_values` will go through the array and create an index for each value and increment it each time it encounters it again.
- `array_filter` will take the created array and pass it through the `moreThanOne` function defined earlier, if it returns `false`, the key/value pair will be removed.
- `array_keys` will discard the `value` portion of the array creating an array with the values being the keys that were defined. This final step gives you a result that removes all values that existed more than once within the original array.
Problem
How can I delete duplicates in array? For example if I had the following array: ``` $array = array('1','1','2','3'); ``` I want it to become ``` $array = array('2','3'); ``` so I want it to delete the whole value if two of it are found