vectores una suma recorrer multidimensional matriz matrices imprimir hacer dibujar como array 5x5 3x3 php arrays count

una - suma de matrices en php



Contar el número de valores en la matriz con un valor dado (8)

¿Qué le parece usar el array_count _values para obtener una matriz con todo lo contado para usted?

Digamos que tengo una matriz como esta:

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

¿Cómo puedo contar el número con un valor dado (en el ejemplo en blanco)?

Y hacerlo de manera eficiente? (para aproximadamente una docena de matrices con cientos de elementos cada uno) Este ejemplo expira (más de 30 segundos):

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, la cantidad de elementos en blanco es 3.


Generalmente para contar espacios en blanco solamente. Realmente depende del caso de uso y la velocidad necesaria. Personalmente, me gusta hacer cosas en una línea.

Sin embargo, al igual que la respuesta elegida. Sin embargo, todavía necesita una línea para extraer los datos necesarios a otra variable.

$r = count($x) - count(array_filter($x));


No sé si esto sería más rápido, pero es algo que debes intentar:

$counter = 0; foreach($array as $value) { if($value === '''') $counter++; } echo $counter;


Solo una idea, podría usar array_keys( $myArray, "" ) usando el segundo parámetro opcional que especifica un valor de búsqueda. Luego cuente el resultado.

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


También puede probar array_reduce , con una función que simplemente contará el valor que le interesa. Por ejemplo,

function is_empty( $v, $w ) { return empty( $w ) ? ($v + 1) : $v; } array_reduce( $array, ''is_empty'', 0 );

Algunos benchmarking podrían decirle si esto es más rápido que array_count_values ​​()


Utilizamos la función array_filter para averiguar el número de valores en el conjunto

$array=array('''','''',''other'','''',''other''); $filled_array=array_filter($array);// will return only filled values $count=count($filled_array); echo $count;// returns array count


function arrayvaluecount($array) { $counter = 0; foreach($array as $val){ list($v)=$val; if($v){ $counter =$counter+1; } } return $counter; }


function countarray($array) { $count=count($array); return $count; } $test=$array = array('''', '''', ''other'', '''', ''other''); echo countarray($test);