Foros del Web » Programando para Internet » PHP »

Contar valores en un array

Estas en el tema de Contar valores en un array en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/12/2012, 17:49
 
Fecha de Ingreso: mayo-2009
Mensajes: 68
Antigüedad: 14 años, 10 meses
Puntos: 0
Contar valores en un array

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.
  #2 (permalink)  
Antiguo 01/12/2012, 17:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Contar valores en un array

Prueba usando array_count_values, cuenta todos los valores.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 01/12/2012, 18:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 68
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Contar valores en un array

Hola David,

Muchas gracias, me sirvío la info, lo imprimo así:

Código PHP:
print_r(array_count_values($result)); 
pero por ejemplo cómo hago para meter la cantidad de a, b, c y d que tengo dentro de una variable?

ya uqe después las quiero comparar y ver cual valor es mayor.
  #4 (permalink)  
Antiguo 01/12/2012, 18:11
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Contar valores en un array

¿Asignando?:
Código PHP:
Ver original
  1. $variable = array_count_values($result);
O es que no entendí tu pregunta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 01/12/2012, 18:19
 
Fecha de Ingreso: mayo-2009
Mensajes: 68
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Contar valores en un array

quiero ver cual es mayor entonce mi idea es meterlo en un if y compararlos ahi pero todavia no manejo bien los array.

se puede asi?

Código PHP:
$variable array_count_values($result);
if (
$variable[a] > $variable[b]) {
  echo 
"a es mayor que b";

  #6 (permalink)  
Antiguo 02/12/2012, 04:42
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
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!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:52.