Counting Occurrence of Specific Value in an Array with PHP

PHP - count specific array values

$array = array("Kyle","Ben","Sue","Phil","Ben","Mary","Sue","Ben");
$counts = array_count_values($array);
echo $counts['Ben'];

count the number of occurrence of each element in an array (in php)

As mentioned in the comments array_count_values() is the optimal solution in php. But you must write it out aka show your understanding on how to search an array its rather simple as well.

$a=['a','b','a','c','a','d'];
$output=[];

for($i = 0; $i < count($a); $i++){
if(!isset($output[$a[$i]])){
$output[$a[$i]] = 1;
}

else{
$output[$a[$i]] = $output[$a[$i]] + 1;
}
}

var_dump($output);

//output
array(4) {
["a"] => int(3)
["b"] => int(1)
["c"] => int(1)
["d"] => int(1)
}

Count occurrences of a value in a column of an array of object arrays

$count = 0;
foreach ($array as $item) {
if ($item->type === 'photo') {
$count++;
}
}

How to count specific value from array PHP?

Try this. See comments for step-by-step explanation.
Outputs:

array(2) {
["channel_1"]=>
int(1)
["channel_0"]=>
int(2)
}

Code:

<?php

// Your input array.
$a =
[
[
'Report' =>
[
'id' => 10,
'channel' => 1
]
],
[
'Report' =>
[
'id' => 92,
'channel' => 0
]
],

[
'Report' =>
[
'id' => 18,
'channel' => 0
]
]
];

// Output array will hold channel_N => count pairs
$result = [];

// Loop over all reports
foreach ($a as $report => $values)
{
// Key takes form of channel_ + channel number
$key = "channel_{$values['Report']['channel']}";

if (!isset($result[$key]))
// New? Count 1 item to start.
$result[$key] = 1;
else
// Already seen this, add one to counter.
$result[$key]++;
}

var_dump($result);
/*
Output:
array(2) {
["channel_1"]=>
int(1)
["channel_0"]=>
int(2)
}
*/

count occurrences of values in an associative array in php

Combination of array_count_values & array_column (PHP 5 >= 5.5.0, PHP 7) should work -

$counts = array_count_values(
array_column($employees, 'position')
);

Output

array(3) {
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(2)
}

Update

$final = array_filter($counts, function($a) {
return $a >= 2;
});

Output

array(2) {
[2]=>
int(2)
[3]=>
int(2)
}

Demo

Check how many times specific value in array PHP

Several ways.

$cnt = count(array_filter($uid,function($a) {return $a==12;}));

or

$tmp = array_count_values($uid);
$cnt = $tmp[12];

or any number of other methods.

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: 7
Array
(
[12] => 1
[43] => 6
[66] => 1
[21] => 2
[56] => 1
[78] => 2
[100] => 1
)


Related Topics



Leave a reply



Submit