I have an sorted array which contains first names of people. This array has lots of names which are same.
I want to output only duplicate names.
Example,
input array:
Array
(
[0] => Abbas
[1] => Abhay
[2] => Abhinav
[3] => Abhishek
[4] => Aditya
[5] => Ahmed
[6] => Ahmed
[7] => Ajay
[8] => Ajay
}
It should return
Array
(
[5] => Ahmed
[6] => Ahmed
[7] => Ajay
[8] => Ajay
}
Use this code:
# assuming your original array is $arr
array_unique(array_diff_assoc($arr, array_unique($arr)));
It will return unique duplicates but if you want non-unique duplicates then use:
array_diff_assoc($arr, array_unique($arr));
$uarr = array_unique($arr);
var_dump(array_diff($arr, array_diff($uarr, array_diff_assoc($arr, $uarr))));
array(4) {
[5]=>
string(5) "Ahmed"
[6]=>
string(5) "Ahmed"
[7]=>
string(4) "Ajay"
[8]=>
string(4) "Ajay"
}
You could use this function http://php.net/manual/en/function.array-unique.php to get an array withoutt he duplicate values, then you can use this function http://www.php.net/manual/en/function.array-intersect.php to find the differences, maintaining key association.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With