Autor
|
Tema: Comparar Listas (Leído 3,996 veces)
|
Zieg Uchiha
Desconectado
Mensajes: 38
|
mmmm aun no soluciono mi problema. a ver si alguien me puede ayudar. tengo listas diferentes. uno asi Ej: casa auto motocicleta bicicleta monopatín etc
y la otra asi auto camioneta furgón bicicleta departamento
y lo que quiero es que tome el primer ítem de la primera lista y lo compruebe por la segunda lista, osea, lo busque, y si esta me de un echo diciendo "si esta", luego tome el segundo ítem y lo compruebe por todos los elementos de la lista, y así sucesivamente. espero alguien pueda ayudarme, ya k no se como hacerlo y llevo dias tratando . desde ya muchas gracias. a otra cosa. alguien sabe como hacer para que me imprima solo una coincidencia aunque encuentre 2 o mas. saludos.
|
|
|
En línea
|
|
|
|
satan69
Desconectado
Mensajes: 341
|
podes usar array.. y con dos ciclos for que valla comparando la lista
|
|
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
$Lista1 = array("casa","auto","motocicleta","bicicleta","monopatin"); $Lista2 = array("auto","camioneta","furgon","bicicleta","departamento","bicicleta"); foreach ($Lista1 as $Valor1) { foreach ($Lista2 as $Valor2) { if ($Valor1 == $Valor2) { echo "Coincidencia para ".$Valor1."<br>"; break; } } }
|
|
|
En línea
|
|
|
|
Zieg Uchiha
Desconectado
Mensajes: 38
|
no me funciona . voy a poner un estracto de lo que quiero hacer. esta es la lista uno, la leo de txt. Es informacion de cuentas de usuario en un Juego. Juneau Juliet 18 Sorc dead
zirex Orberita 2 Sorc dead
catiiita_10 nicro 3 Nec dead
HeFeStO SoRcY_HeFeStO 77 Sorc dead
HeFeStO CdR-MoRDeLoN 6 (null) dead
martinsho Martinsho 23 (null) dead
martinsho Don_Fermin 25 Nec dead
karensitha Tkf_Karensita 76 Sorc dead
tml-enchant Tml-Calentona 6 Sorc dead
gastonz MF-Coldgirl 4 Sorc alive
Zork_95 Ventix 5 Sorc dead
tutankarroyo Arkrak 22 Sorc dead
así como se ve,el primer nombre es la cuenta, el segundo horizontal es el nombre del Personaje, depues viene el nivel, despues la clase y despues si esta vivo, todo así separado por espacios. y este es el archivo 2, es un dat que me da la info de el momento, me dice que cuenta estan online. [STATUS] Version=1.8.4 Uptime=2 days 7 hours 53 minutes 30 seconds [CHANNELS] channel1=The Void channel2=Diablo II-1 channel7=Clan HnM channel8=Clan Dif channel9=Clan Msc channel10=Clan Lhs channel11=Clan Foc channel12=Clan FBI channel13=Clan Tml channel14=Clan CdR [GAMES] game1=D2XP,Ger game2=D2XP,Btybtyb game3=D2XP,3 game4=D2XP,Fdgdf game5=D2XP,Bh4 game6=D2XP,Pesa2 game7=D2XP,Pesa game8=D2XP,Melo Aka game9=D2XP,Poto [USERS] user1=D2XP,matariel user2=D2XP,ZeroMan user3=D2XP,Udemishon user4=D2XP,juanshop user5=D2XP,NeGroH user6=D2XP,baron-rojo user7=D2XP,miwo-enxant user8=D2XP,Raper_D user9=D2XP,ale_aggro user10=D2XP,Rekiem user11=D2XP,JUANB user12=D2XP,japy user13=D2XP,Zeus user14=D2XP,yetafabox user15=D2XP,alvarillo- user16=D2XP,VorteX user18=D2XP,Sir_Lothar user19=D2XP,Vlad_Drak user20=D2XP,poncer user21=D2XP,JeSi user22=D2XP,neitas user23=D2XP,Ashknaref user24=D2XP,maxjaker user25=D2XP,th_wd4001 user26=D2XP,th_wd4002 user27=D2XP,alvarillo user28=D2XP,rene_w
aunke el e dat me los abre todo junto, sin saltos de linea, en vez de un salto aparece un cuadrado . ya ahora este es el codigo, mas o menos. Aunque e probado muchas formas y ninguna me a dado resultado como quiero, pero este es el que tengo ahora. <?php //archivos $server="server.dat"; $char="charlist.txt"; //abrir achivos $abrirchar=fopen($char,"r"); $abrirserver=fopen($server,"r"); { $leerchar=fgets($abrirchar); while(!feof($abrirserver)) { $leerserver=fgets($abrirserver); if ($acc==$vec[0]) { echo $acc.'<br>'; break; }else{ echo'no encontro nada<br>'; } } } ?>
lo que quiero es que tome la primera variable $acc y buske coincidencias en el texto 2 de esa manera me va a decir si esta online si no la encuentra me devuelva un echo diciendo que esta offline, si en el texto 1 hay mas de una cuenta = que solo tome 1 y las otras no las tome y así.... espero que alguien pueda ayudarme T_T. gracias. saludos.
|
|
« Última modificación: 16 Marzo 2009, 16:10 pm por Zieg Uchiha »
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
¿Que tal así? $LineasTxt = file("Archivo.txt"); $Gestor = fopen("Archivo.dat", "r"); foreach ($LineasTxt as $LineTxt) { $Usuario = trim($Datos[0]); { if (eregi($Usuario,$sContenido)) echo $Usuario." esta on-line<br>"; else echo $Usuario." esta off-line<br>"; } }
tu le pones los asentos saludos,
|
|
« Última modificación: 16 Marzo 2009, 19:10 pm por cΔssiΔnі »
|
En línea
|
|
|
|
Zieg Uchiha
Desconectado
Mensajes: 38
|
si funciono bien, gracias, pero todavia se imprime todas las coincidencias, si encuentra mas de 1 las imprime todas, y la idea es que solo imprima 1.
Pero Gracias.
Saludos.
|
|
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
aaa lo olvide, y me pareció raro eso de varias cuentas con el mismo nombre de usuario, pero ya caí xD sencillo, se me ocurren varias formas de hacerlo, está puede ser una: sustituyes aquel bloque por este: { $Flag = false; foreach ($ListaUsuarios as $sUsuario) if ($sUsuario == $Usuario) $Flag = true; if ($Flag == false) { $ListaUsuarios[] = $Usuario; if (eregi($Usuario,$sContenido)) echo $Usuario." esta on-line<br>"; else echo $Usuario." esta off-line<br>"; } }
y luego de cerrar el archivo, esta: $ListaUsuarios[]=array();
|
|
|
En línea
|
|
|
|
Zieg Uchiha
Desconectado
Mensajes: 38
|
Gracias amigo!!!. me solucionaste la Vida xD.
ahora, no se si será mucha molestia pero, yo soy novato en esto, me gustaria que me explicaras un poco que fue lo que hiciste con todo el codigo.
bueno ahi me dices si puedes o no ^^, Pero hasta ahi muchas GRACIAS.
|
|
« Última modificación: 17 Marzo 2009, 19:14 pm por Zieg Uchiha »
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
No es nada compañero, explicando soy muy malo, por encimita es algo así:
1- creamos un array con las líneas del txt 2- vaciamos en una variable el contenido del dat 3- creamos un nuevo array para almacenar los nombre de usuarios 4- por cada info de la cuenta, obtenemos el nombre de usuario y lo comparamos con los que ya se han hido almanenando y en caso de que no este, hacemo lo propio. 5- luego obtenemos el estado de la cuenta y la mostramos.
Ahora, para que tengas una idea más amplia, puedes ir buscando lo que hace cada función y le vas agregando comentarios...
Lo fundamental es tener la idea, luego ya se ve como se hace, siempre hay varias formas ..
saludos,
|
|
|
En línea
|
|
|
|
Zieg Uchiha
Desconectado
Mensajes: 38
|
disculpa, tal vez es mucho pedir pero como seria para que me imprima mas o menos así. cuenta ONLINE
Nombre de pj1 Level Class Nombre de Pj2 Level Class Nombre de Pj2 Level Class ............................................
y assi sucesivamente.
T_T espero aprender algun dia T_T.
|
|
|
En línea
|
|
|
|
|
|