Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/12/2012, 04:42
DoHITB
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Respuesta: Contar valores en un array

Cita:
Iniciado por marianoear Ver Mensaje
Hola,

Estoy armando un array y se me está complicando cuando tengo que sumar los valores iguales o que se repiten.

Por ejemplo tengo este array

Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => a
[5] => b
)

Debería ser capaz de decirme cuantos valores a tengo en ese array, cuanto b, c y d.

La idea es poder contabilizarlos.

Con la funcion count se puede???
http://php.net/manual/es/function.count.php


Agradezco que me puedan dar una ayuda.
Hola, te intentaré ayudar planteándote una posible solución:

Código:
/* tenemos este array
$arr = Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => a
    [5] => b
)
*/

$array_auxiliar = array(); //creamos un array auxiliar

for($i=0;$i<count($arr);$i++){
//iteramos sobre el array, independientemente de su logintud (por eso usamos "count")
  if(isset($array_auxiliar[$arr[$i]])){
    //"traducción": si existe una clave en array_auxiliar que se llame como el valor de $arr[$i]
    $array_auxiliar[$arr[$i]]++; //incrementamos
  }else{
    //si no existe
    $array_auxiliar[$arr[$i]] = 1; //lo creamos
  }
}
Al final tendríamos:

$array_auxiliar = Array
(
[a] => 2
[b] => 1
[c] => 1
[d] => 1
)

Así, te explico un poco el tema de los array:

Lo que se hace en el código es crear un array asociativo (si has trabajado con GET, POST, SESSION o COOKIE los habrás manejado), de manera que puedes hacer algo así como

$array['clave'] = valor;

Es decir, el índice pasa de ser un autonumérico a ser una clave (como una tabla).

Por tanto, podemos crear un array que tenga como claves los valores del array que quieres evaluar.

Para evaluar el array, tienes que ir posición por posición (con un bucle for, como arriba), y tratar cada elemento como una variable elemental (si te lías, puedes hacer así);

for($i=0;$i<count($array);$i++){
$valor_array = $array[$i];
//usaríamos $valor_array para trabajar con el valor del array.
}

Espero que te sirva de ayuda.

Saludos!