How do I count occurrence of duplicate items in array
array_count_values
, enjoy :-)
$array = array(12,43,66,21,56,43,43,78,78,100,43,43,43,21);$vals = array_count_values($array);echo 'No. of NON Duplicate Items: '.count($vals).'<br><br>';print_r($vals);
Result:
No. of NON Duplicate Items: 7Array( [12] => 1 [43] => 6 [66] => 1 [21] => 2 [56] => 1 [78] => 2 [100] => 1)
if you want to try without 'array_count_values'
you can do with a smart way here
<?php$input= array(12,43,66,21,56,43,43,78,78,100,43,43,43,21);$count_values = array();foreach ($input as $a) { @$count_values[$a]++;}echo 'Duplicates count: '.count($count_values);print_r($count_values);?>
I actually wrote a function recently that would check for a substring within an array that will come in handy in this situation.
function strInArray($haystack, $needle) { $i = 0; foreach ($haystack as $value) { $result = stripos($value,$needle); if ($result !== FALSE) return TRUE; $i++; } return FALSE;}$array = array(12,43,66,21,56,43,43,78,78,100,43,43,43,21);for ($i = 0; $i < count($array); $i++) { if (strInArray($array,$array[$i])) { unset($array[$i]); }}var_dump($array);