Foros del Web » Programando para Internet » PHP »

for en php

Estas en el tema de for en php en el foro de PHP en Foros del Web. buenas quiero saber como utilizo la funcion for para que me muestre todas las combinaciones posibles con las letras a-z incluyendo mayusculas y minusculas;dependiendo del ...
  #1 (permalink)  
Antiguo 01/09/2008, 14:09
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
for en php

buenas quiero saber como utilizo la funcion for para que me muestre todas las combinaciones posibles con las letras a-z incluyendo mayusculas y minusculas;dependiendo del numero maximo de caracteres que indique el usuario en un listbox por ejemplo dependiendo de la variable $numerodecar que la obtiene de un select
  #2 (permalink)  
Antiguo 01/09/2008, 14:16
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: for en php

Y eso para qué? porque un número elevado (y ni tan elevado) de caracteres te arrojarán miles de combinaciones.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #3 (permalink)  
Antiguo 01/09/2008, 14:26
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: for en php

jaja men te sacaria miles de resultados, asi escoja un 2 aa, ab, ac, ad, af...
jaja men mejor has un random y ahi q el usuario le que un numero, te seria mejor hacer un random de 6 caracteres y no darle al usuario miles para quee scoja uno.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #4 (permalink)  
Antiguo 01/09/2008, 14:31
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: for en php

eso es lo que quira un numero elevado de combinaciones posibles de a a la z, dependiendo de un numero maximo escojido por el usuario;pero kiero saber como se haze sin importar que queme el servidor
  #5 (permalink)  
Antiguo 01/09/2008, 14:33
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: for en php

Para las combinaciones posibles, esta el factorial ("!" en matematica).
Pero tendrias que crear una funcion para que saque el factorial de un numero.

Ademas, TolerantX y lobo_php tienen razon. Seria un numero demasiado alto.

El abecedario en ingles tiene 26 letras.
26! = 403291461126605635584000000

Y eso sin contar mayusculas :)

Aqui una funcion para sacar el factorial de un numero:
Código PHP:
function factorial($num) {
$factorial 1;
    for(
$i=$num$i>=1$i--)
    {
        
$factorial $factorial $i;
    }
return 
$factorial;

  #6 (permalink)  
Antiguo 01/09/2008, 14:37
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: for en php

jojo imaginate Ronruby una pagina donde me cargue (403291461126605635584000000 * 2) convinaciones. que locura. aca ayudamos no estamos en los mismos sueños
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #7 (permalink)  
Antiguo 01/09/2008, 14:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: for en php

Creo que para las combinaciones posibles de mayusculas y minusculas seria (26*2)!
Asi que si el 26! ya es un NUMEROTE, imaginate 52!

80658175170943878571660636856403766975289505440883 277824000000000000
  #8 (permalink)  
Antiguo 01/09/2008, 14:50
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: for en php

wajkajkajka
q sera lo que qiere hacer este chico?
de todas formas como se puede hacer un for con letras q me las una, hay que hacer es una funcion que creo que seria bastante larga y complicada
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #9 (permalink)  
Antiguo 01/09/2008, 14:52
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: for en php

Prueba poniendole esto:
Código PHP:
    $abcdario = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z");
    
$numMax count($abcdario);
    
//minusculas y mayusculas en orden
    
for($a=0;$a<$numMax;$a++){
        echo 
$abcdario[$a].'<br>';
    }
    for(
$a=0;$a<$numMax;$a++){
        echo 
strtoupper($abcdario[$a]).'<br>';
    }
    
    
//minusculas y mayusculas intercaladas
    
for($a=0;$a<$numMax;$a++){
        echo 
$abcdario[$a].'<br>';
        echo 
strtoupper($abcdario[$a]).'<br>';
    } 
Con eso sacas el abecedario español en mayuscula y minuscula en un for. Si te fijas el for en este caso, se recorre por la cantidad de elementos del abecedario. Ahi puedes poner cualquier numero para que llegue a cierta letra y empezar a hacer tus combinaciones.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #10 (permalink)  
Antiguo 01/09/2008, 14:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: for en php

Tambien puedes mostrar el abecedario de esta forma: (En ingles):

Código PHP:
for($i="a";$i!="aa";$i++)
{
    echo 
$i.'<br>';

  #11 (permalink)  
Antiguo 01/09/2008, 14:59
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: for en php

tocaria hacer un doble for para que al terminar todas las convinaciones de la a empiece con la b. algo como

Código PHP:
$i=0;
$c=0;
for (
$i=0;$i<=26;$i++){
   for (
$c=0;$c<=26;$c++){
     
//aqui las convinaciones de los arreglos
     
echo abcdario[$i]+abcdario[$c]+"<br>";
  }

__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175

Última edición por lobo_php; 01/09/2008 a las 15:06
  #12 (permalink)  
Antiguo 01/09/2008, 15:05
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: for en php

claro contando con el script que dio marvin
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #13 (permalink)  
Antiguo 01/09/2008, 15:23
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: for en php

Pero ojo... porque si quiere hacer la combinacion 1 a 1 es bien sencillo armar todas:
Código PHP:
    $abcdario = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z");
    
$numMax count($abcdario);
    
$c 0;
    for(
$a=0;$a<$numMax;$a++){
        
//sin combinacion letras minusculas
        
echo $abcdario[$a].'<br>';
        
//sin combinacion letras mayusculas
        
echo strtoupper($abcdario[$a]).'<br>';
        for(
$b=0;$b<$numMax;$b++){
            
//combinaciones de letras en minuscula con mayusculas
            
echo $abcdario[$a].strtoupper($abcdario[$b]).'<br>';
            
//combinaciones de letras en minuscula con minusculas
            
echo $abcdario[$a].$abcdario[$b].'<br>';
            
//combinaciones de letras en mayuscula con minusculas
            
echo strtoupper($abcdario[$a]).$abcdario[$b].'<br>';
            
//combinaciones de letras en mayuscula con mayusculas
            
echo strtoupper($abcdario[$a]).strtoupper($abcdario[$b]).'<br>';
        }
        
$c = ($b*4) + $c//contador de numero de combinaciones (*4 para agregar mayusculas en reversa e inversa)
    
}
    
$c = ($a*2) + $c//agregamos las dos combinaciones mayuscula y minuscula
    
echo '<br> Se han combinado '.$c.' valores.'
Poniendose en el caso que quiera combinar cada letra del abecedario con una nueva vendria a ser algo mas complicado... pero dejo ese por si solo es una combinacion de uno a uno.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #14 (permalink)  
Antiguo 01/09/2008, 15:32
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: for en php

aja exclente respuesta men. hasta yo aprendi
espero que djsos pueda lograr su objetivo.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #15 (permalink)  
Antiguo 01/09/2008, 15:52
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
lo primero gracias a todos por vuestra colaboracion y sobre todo a Marvin pero ya por ultimo donode tendria que poner la variable que llega del select que escoje el usuario para decidir el numero de caracteres. Es decir en tu ejemplo llega asta la zz pasando por todo los caracteres anteriores, imagina que el usuario pide 5 caracteres es decir que le convinara cuantro veces mas todos los resultados. Se que son muchisimos resultados pero me gustaria saberlo porfavor.Muchas Gracias

amm y notoi loco por querer acer esta locura;)

Última edición por GatorV; 01/09/2008 a las 19:59
  #16 (permalink)  
Antiguo 02/09/2008, 11:08
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: for en php

Si te fijas el control de cada for lo hago con $numMax por lo tanto si asignas el $_POST[] de la variable que selecciono el usuario a esta variable, hasta ahi no mas llegara el script.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #17 (permalink)  
Antiguo 02/09/2008, 12:43
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: for en php

Creo que no entiendes a lo que me refiero. El codigo que tu me as pasado es uy weno y sirve para combinar 1a1 pero yo lo que quiero es que lo que el usuario define es el numero de caracteres que tiene la codificacion es decir:
Tu codigo echa algo como esto:
aA
aa
Aa
AA

es decir maximo 2 caracteres pero si mi usuario por ejemplo pone 4 que me de algo parecido a :
aaaa
aaaA
aaAA
aAAA
AAAA
Aaaa
AAaa
AAAa
AaAA
me entiendes ahora?
Lo que me es indiferente seria que combinase mayusculas y minusculas que asi supongo que sera mas sencillo el codigo
Algo del tipo lo que explico ronruby pero con los caracteres que yo le de
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 02:37.