Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] comparar dos string

Estas en el tema de comparar dos string en el foro de PHP en Foros del Web. Buenas tardes amigos vengo a pedir apoyo con la siguiente duda que seguia en mi post anterior, pedi ayuda en el foro de javascript pero ...
  #1 (permalink)  
Antiguo 08/03/2017, 13:02
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta comparar dos string

Buenas tardes amigos vengo a pedir apoyo con la siguiente duda que seguia en mi post anterior, pedi ayuda en el foro de javascript pero como no entiendo mucho de ese lenguaje, me posiciono tambien por aqui a ver como me va

Como algunos ya sabrán necesito compara dos string, eliminar el contenido igual, y que solo me quede el contenido desigual, tengo este codigo que compara dos string y borra lo que este igual de uno con el otro string:

Código PHP:

      
if($data1 != $data2){
        echo 
str_ireplace($data1""$data2);
    } 

como podran notar elimina lo que se paresca de un string en el otro, pero este tiene un detalle, y es que el string base tiene que comenzar igual identico al string nuevo, el nuevo es el que tiene los cambios , pero si el base se diferencia del nuevo en una sola palabra o linea o caracter el codigo no funciona, muestro un ejemplo del problema:


el primer string

"Tengo una casa roja, con la puerta negra";

el segundo string

"He comprado una casa y ahora Tengo una casa roja,
con 2 estacionamientos y con la puerta negra";

el resultado es:
He comprado una casa y ahora Tengo una casa roja,
con 2 estacionamientos y con la puerta negra

y lo que yo busco es que sea este:

He comprado una casa y ahora
con 2 estacionamientos y



Como ven al diferenciarse el principio y el intermedio de uno de los string no elimina nada y sigue mostrando lo mismo que ya tengo en uno de los dos, pero si comienzan igual y el intermedio es igual tambien, solo mostraria si se agraga contenido al final del string mas o menos asi:


el primer string

"Tengo una casa roja, con la puerta negra";

el segundo string

"Tengo una casa roja,
con la puerta negra comprada con un credito del banco";

el resultado es:

"comprada con un credito del banco"


Y yo necesito que lo recorra todo completo, para que si me muestre solo lo que no existe en los dos sin importar si comienzan igual o tienen mas cambios.

He buscado en google pero no logro dar con lo que necesito si me pueden ayudar aqui mostrandome un ejemplo o diciendome una funcion distinta se los agradeceria bastante, muchas gracias de antemano
  #2 (permalink)  
Antiguo 08/03/2017, 16:17
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: comparar dos string

¿Utilizas la coma para separar el contenido a consultar y a quitar?
Es decir, siempre habrá una coma en tu primera cadenara para saber exactamente que se desea remover de la segunda cadena?

Saludos.
  #3 (permalink)  
Antiguo 08/03/2017, 19:33
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Respuesta: comparar dos string

Cita:
Iniciado por oggy_15_3 Ver Mensaje
¿Utilizas la coma para separar el contenido a consultar y a quitar?
Es decir, siempre habrá una coma en tu primera cadenara para saber exactamente que se desea remover de la segunda cadena?

Saludos.
Gracias por responder, y la verdad no se como hacerlo , alli solo tengo esas dos variables que son las que contienen los string, y esa funcion de comparacion y eso a duras penas porque no poseo mas nada con respecto a esta consulta.
  #4 (permalink)  
Antiguo 09/03/2017, 01:01
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: comparar dos string

Hola jecavi_20,

Aquí te dejé una búsqueda de cómo hacer lo que pretendes ¿has revisado algo de esto?:

http://www.forosdelweb.com/f18/impor...1/#post4813725
  #5 (permalink)  
Antiguo 09/03/2017, 07:03
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: comparar dos string

Cita:
Iniciado por rbczgz Ver Mensaje
Hola jecavi_20,

Aquí te dejé una búsqueda de cómo hacer lo que pretendes ¿has revisado algo de esto?:

http://www.forosdelweb.com/f18/impor...1/#post4813725
Hola rbczgz,

Si he buscado alli, pero los ejemplos son iguales al que tengo, es decir este que coloque arriba lo busque de hay, y las funciones que he investigado hacen el mismo proceso y dan el mismo resultado o si no, entonces hacen la comparacion pero sin mostrar la diferencia solo muestran un si o un no, y tengo que buscar la diferencia de una configuracion de ayer a una de hoy pero esta dficil
  #6 (permalink)  
Antiguo 09/03/2017, 11:15
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: comparar dos string

Yo lo haría de la siguiente manera.
En sí el resultado que deberías tener debería considerar las comas..

Código PHP:
Ver original
  1. $sCad1="Tengo una casa roja, con la puerta negra";
  2. $sCad2="Tengo una casa roja, con la puerta negra comprada con un credito del banco";
  3. //result: comprada con un credito del banco (lo que no coincida tiene como ref cad2)
  4.  
  5. //$sCad1="Tengo una casa roja, con la puerta negra";
  6. //$sCad2="He comprado una casa y ahora Tengo una casa roja, con 2 estacionamientos y con la puerta negra";
  7.  
  8. $aBuscar=explode(",",$sCad1);
  9. $sNuevaCad=$sCad2;
  10. for($ni=0;$ni<count($aBuscar);$ni++){
  11.     $sBuscar=preg_quote($aBuscar[$ni]);
  12.     $sNuevaCad  = preg_replace("/($sBuscar)/i",'',$sNuevaCad);
  13. }
  14. echo $sNuevaCad;

Al menos con esto te doy una idea de como hacerlo.

Última edición por oggy_15_3; 09/03/2017 a las 11:21
  #7 (permalink)  
Antiguo 09/03/2017, 11:48
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: comparar dos string

Lo que quieres hacer se resuelve extrayendo cada palabra por separado, y luego, hacies str_replace() al string para obtener el resultado deseado.

Osea

Código PHP:
$palabras explode(' '$data1);
echo 
str_replace($palabras''$data2); 
Saludos

Última edición por Triby2; 09/03/2017 a las 12:09
  #8 (permalink)  
Antiguo 10/03/2017, 06:53
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
De acuerdo Respuesta: comparar dos string

Cita:
Iniciado por rbczgz Ver Mensaje
Hola jecavi_20,

Aquí te dejé una búsqueda de cómo hacer lo que pretendes ¿has revisado algo de esto?

http://www.forosdelweb.com/f18/impor...1/#post4813725

Cita:
Iniciado por oggy_15_3 Ver Mensaje
Yo lo haría de la siguiente manera.
En sí el resultado que deberías tener debería considerar las comas..

Código PHP:
Ver original
  1. $sCad1="Tengo una casa roja, con la puerta negra";
  2. $sCad2="Tengo una casa roja, con la puerta negra comprada con un credito del banco";
  3. //result: comprada con un credito del banco (lo que no coincida tiene como ref cad2)
  4.  
  5. //$sCad1="Tengo una casa roja, con la puerta negra";
  6. //$sCad2="He comprado una casa y ahora Tengo una casa roja, con 2 estacionamientos y con la puerta negra";
  7.  
  8. $aBuscar=explode(",",$sCad1);
  9. $sNuevaCad=$sCad2;
  10. for($ni=0;$ni<count($aBuscar);$ni++){
  11.     $sBuscar=preg_quote($aBuscar[$ni]);
  12.     $sNuevaCad  = preg_replace("/($sBuscar)/i",'',$sNuevaCad);
  13. }
  14. echo $sNuevaCad;

Al menos con esto te doy una idea de como hacerlo.

hola oggy_15_3 gracias por responder, pero este codigo según lo probé y da el mismo resultado del codigo que ya poseo, o sea tendria que comenzar igual los dos string, y aparte si algo cambia en la separacion por comas entonces no me daría el resultado esperado y las comparaciones que tengo que hacer son muy extensastienen demasiada informacion tanto igual como cambiante.


Cita:
Iniciado por Triby2 Ver Mensaje
Lo que quieres hacer se resuelve extrayendo cada palabra por separado, y luego, hacies str_replace() al string para obtener el resultado deseado.

Osea

Código PHP:
Código PHP:
$palabras explode(' '$data1);
echo 
str_replace($palabras''$data2); 
Saludos
hola Triby2 gracias pero este lo comprobé y tampoco da el resultado.

Gracias a todos de verdad, este es un gran foro en serio me ayudaron bastante y espero que siga asi ya que tengo muchas dudas y esperaria poder seguir pidiendo ayuda por aqui, ya me ayudaron a resolver la funcion que necesitaba, como habia comentado al principio pedi ayuda tambien en el foro de javascript ya me ayudaron con una funcion que si hace la comparacion y aparte despues que agarre la funcion y la adapte a mi codigo muestra resultados mejores de lo que estaba buscando.

Dejo el link:http://www.forosdelweb.com/f13/compa...rings-1157625/

Por si acaso alguien tiene la misma duda o problema, pueda ayudarse por allí.

Se que la forma de ayudar no es haciendole el codigo completo al que pregunta por aqui, pero yo me ayudo por aqui es cuando ya estoy en crisis porque dispongo de muy poco tiempo para hacer el sistema y por eso busco respuestas rapidas, pero se que tengo que estudiar y practicar mas.

Muchisimas Gracias por su ayuda a todos
  #9 (permalink)  
Antiguo 12/03/2017, 09:14
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: comparar dos string

Cita:
Iniciado por jecavi_20 Ver Mensaje
hola Triby2 gracias pero este lo comprobé y tampoco da el resultado.
Cómo que no te funcionó? con el ejemplo que nos diste funciona perfectamente. Otra cosa sería que no diste toda la información que se requiere para resolverte el problema.

http://prntscr.com/ej0w97

ahi tienes la muestra de que se resolvió, si despues el problema está en otro tipos de string, entonces comentalo.

Sin todas las variables no se puede resolver la equación.

Etiquetas: string
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 17:07.