PHP: ¿Como contar valores repetitivos de un array

De Foros del Web

Supongamos que tenemos un array en el cual por el motivo que sea, tenemos varios valores que se repiten.

$colores = array(0 => 'Azul',
                            1 => 'Amarillo',
                            2 => 'Rojo',
                            3 => 'Amarillo',
                            4 => 'Verde');

¿Como podríamos saber cuantas veces se repite X valor?. Siguiendo el ejemplo... ¿Como podemos saber cuantes veces se repite el color Amarillo?

Así: Primero utilizamos array_keys para que nos devuelva las claves/llaves/keys del array. Sin embargo, no le vamos a decir que nos las devuelva todas. Sino que nos devuelva las claves que tienen un mismo valor. En este caso, el valor Amarillo. Aviso: Este ejemplo no funcionara en versiones anteriores a PHP5.

 
   $buscar = (array_keys($colores, "Amarillo"));

Una vez obtenidas las claves/llaves/keys que tienen un mismo valor. Pasamos a contar cuantas son en su totalidad.

 
   $contador = count($buscar);

Eso es todo. El código final es este:

 
   $colores = array(0 => 'Azul',
                            1 => 'Amarillo',
                            2 => 'Rojo',
                            3 => 'Amarillo',
                            4 => 'Verde');
        $buscar = (array_keys($colores, "Amarillo"));
        $contador = count($buscar);
        echo "Amarillo se repite $contador veces";

Como ven es supersencillo y puede resultar muy útil para alguna que otra ocasión. Saludos de OsSk4R 19 Ago 2010

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales