Cita:
Iniciado por marianoear 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!