Depending on the version of PHP, this should work in all versions of PHP> = 4.0.6, since it does not 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 from the drop-down list 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 every 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 deleted.array_keys discards the value part of the array, creating an array with the values being the keys that were defined. This last step gives you a result that removes all the values that existed more than once in the original array.
source share