计算数组中具有给定值的值的数量

2022-08-30 17:25:18

假设我有一个这样的数组:

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

如何用给定值计算数字(在示例空白中)?

并且有效地做到这一点?(大约十几个数组,每个数组有数百个元素)此示例超时(超过 30 秒):

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

在本例中,空白元素的数量为 3。


答案 1

使用array_count _values来获取一个数组,其中包含为您计算的所有内容,怎么样?


答案 2

只是一个想法,您可以使用可选的第二个参数来指定搜索值。然后计算结果。array_keys( $myArray, "" )

$myArray = array( "","","other","","other" );
$length  = count( array_keys( $myArray, "" ));