Decir que tengo una serie como esta:Contar el número de valores en la matriz con un valor dado
$array = array('', '', 'other', '', 'other');
¿Cómo puedo contar el número con un valor dado (en el ejemplo blanco)?
¿Y hacerlo de manera eficiente? (Por alrededor de una docena de matrices con cientos de elementos de cada uno) En este ejemplo el tiempo de espera (durante 30 s):
function without($array) {
$counter = 0;
for($i = 0, $e = count($array); $i < $e; $i++) {
if(empty($array[$i])) {
$counter += 1;
}
}
return $counter;
}
En este caso el número de elementos en blanco es 3.
Cellfish: array_count_values funciona, pero el script que normalmente tarda de 1 a 2 segundos en ejecutarse ¡tardó casi 20 segundos! Johnathan: array_keys no funcionó para esta función en particular. Steve: array_reduce también funciona pero no tan rápido como me gustaría. Manzanilla: Simplemente cambiando $ valor === '' a vacío ($ valor) que resultó ser la manera más rápida de hacer esto. función sin ($ array) { $ count = 0; foreach ($ array as $ value) { if (empty ($ value)) { $ count ++; } } return $ count; } – Tom