phparrayscount

Count number of values in array with a given value


Say I have an array like this:

$array = array('', '', 'other', '', 'other');

How can I count the number with a given value (in the example blank)?

And do it efficiently? (for about a dozen arrays with hundreds of elements each). This example times out (over 30 seconds):

function without($array) {
    $counter = 0;
    for($i = 0, $e = count($array); $i < $e; $i++) {
        if(empty($array[$i])) {
            $counter += 1;
        }
    }
    return $counter;
}

In this case, the number of blank elements is 3.


Solution

  • Use array_count _values to get an array with everything counted for you.