Foros del Web » Programando para Internet » PHP »

Comprobar numeros

Estas en el tema de Comprobar numeros en el foro de PHP en Foros del Web. Buenas, a ver si me consigo explicar correctamente. Estoy intentando encontrar el mejor metodo para comprobar combinaciones, un simple metodo para chequear los numeros de ...
  #1 (permalink)  
Antiguo 18/05/2012, 08:32
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 4
Comprobar numeros

Buenas, a ver si me consigo explicar correctamente.

Estoy intentando encontrar el mejor metodo para comprobar combinaciones, un simple metodo para chequear los numeros de loteria por ejemplo. Que es la opcion que quiero darle.

Por ejemplo tengo la combinacion ganadora: 1,2,3,4,5,6

Y tengo mi apuesta: 3, 4, 14, 22, 24, 35, 45

Qual seria el mejor metodo para comprobar quantos numeros coinciden, osea numero de aciertos?
  #2 (permalink)  
Antiguo 18/05/2012, 08:48
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Comprobar numeros

Lo hice a las carreras, no se si tiene errores de sintaxis... espero te sirva

Código PHP:
Ver original
  1. <?php
  2. $loteria = array(1,2,3,4,5,6);
  3. $apuesta = array(3, 4, 14, 22, 24, 35, 45);
  4.  
  5. $aciertos = array_intersect($loteria, $apuesta);
  6. $numeroAciertos = count($aciertos);
  7.  
  8. echo "El numero de aciertos es: $numeroAciertos, y los numeros acertados son: ";
  9.  
  10. foreach($aciertos as $valor){
  11.     echo "$valor ";
  12. }
  13. ?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 18/05/2012, 08:49
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Comprobar numeros

Código PHP:
Ver original
  1. // Declaras el arreglo con la combinación ganadora
  2. $ganadora=array(1,2,3,4,5,6);
  3. // Declaras el arreglo con tu apuesta
  4. $apuesta=array(3,4,14,22,24,35,45);
  5. // declaras la variable aciertos
  6. $aciertos=0;
  7. // haces un forech que recorra los numeros apostados
  8. foreach($apuesta as $ap)
  9.     // revisas si cada número esta entre los ganadores
  10.     if(array_search($ap,$ganadora)) $aciertos++;
  11. // por ultimo imprimes la cantidad de aciertos
  12. echo "Has acertado a $aciertos números";

--------editando----------

Esta mucho mejor la solución de jotaincubus, no conocía la instrucción array_intersect
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 18/05/2012, 08:52
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 4
Respuesta: Comprobar numeros

Coño, array_intersect

Muchas gracias, voy a investigar
  #5 (permalink)  
Antiguo 18/05/2012, 10:04
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 4
Respuesta: Comprobar numeros

Un nuevo "problema" relacionado, si quisiera compararlos, pero en las mismas posiciones dentro del array, tendria que usar

array_intersect_assoc() ???
  #6 (permalink)  
Antiguo 18/05/2012, 10:13
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Comprobar numeros

En el caso de array_intersect_assoc el par "clave" => "valor" es analizado, en el caso que usted plantea seria valido.

Debe tener en cuenta que si usted tiene

array1 = array(1,2,3);
array2 = array(1,3,4);

El resultado solo seria 1 ya que esta presente en la misma clave y tienen el mismo valor.... NOTESE que el 3 esta en ambos arreglos pero estan en DIFERENTE POSICION O CLAVE por tal motivo este no sera retornado despues de realizar la operacion.

Pero si usted va a trabajar con indices ASOCIATIVOS el problema no seria resuelto, miremos si usted tiene esto:

$array1 = array("a" => 1, "b" => 2, "c" => 3);
$array2 = array("b" => 2, "c" => 1, "a" => 3);

En este caso el array retornado tendria el valor [b] => 2 pero por que?

Porque el par "clave" => "valor" son iguales independiente de la posicion que tengan en el array.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 18/05/2012 a las 10:23

Etiquetas: numeros
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 23:46.