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

Original source

Related problems