Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO PHP con Tabla MYSQL

Estas en el tema de PHP con Tabla MYSQL en el foro de PHP en Foros del Web. Buenas noches. Tengo un listado datos en una tabla en donde tengo que realizar comparaciones. Los datos que tengo seria algo así. 98745 45612 11125 ...
  #1 (permalink)  
Antiguo 10/10/2014, 21:27
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
PHP con Tabla MYSQL

Buenas noches.

Tengo un listado datos en una tabla en donde tengo que realizar comparaciones.

Los datos que tengo seria algo así.

98745
45612
11125
111235
1113458
1591191
15915
159146


Y al buscar algo así 11125648 tendría que chequear con los de la lista, el resultado tendría que ser el que tenga mas números iguales de forma consecutiva. Para el ejemplo que coloque al principio el numero seria 11125.

Otro ejemplo para que se entienda lo que necesito.

1591554612 el numero seria 15915

Lo único que logre fue un for que me va agregando un numero mas a la cadena siempre desde el inici el cual adjunto.

Código PHP:
<?php
mb_internal_encoding
("UTF-8");
$string '6784537679';
$car 1;
$largo strlen($string);


for (
$i 1$i <= $largo$i++) {

$mystring mb_substr($string,0,$car);
echo 
$mystring "<br>";
    
$car $car 1;

}
?>
Gracias.
  #2 (permalink)  
Antiguo 10/10/2014, 21:45
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: PHP con Tabla MYSQL

Puedes usar similar_text o bien calcular la distancia Levenshtein entre ambos string y luego ordenar por esos valores.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 11/10/2014, 14:48
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: PHP con Tabla MYSQL

NSD muchas gracias por tu respuesta, tu sabes que con Levenshtein me acerco bastante al resultado, pero no es 100% lo que quiero.

Ejemplo, estoy buscando este valor 18768141230 en estos.

18763805086
18763805171
187638050770
187638051710
18763800100
18763800130
1876814
18768143457
1876814256

Y me da como resultado el que marco en rojo, y yo necesito que me de como resultado el que marco en azul...
En realidad que me de como resultado el azul porque coinciden los 7 primeros números, quiere decir que el 18768141230 entra como derivado del 1876814.

Adjunto el código.

Código PHP:
<?php

$input 
'18768141230';

$words  = array('18763805086','18763805171','187638050770','187638051710','1876814','18763800100','18763800130','18768143457','1876814256');

$shortest = -1;

foreach (
$words as $word) {

    
$lev levenshtein($input$word);

    if (
$lev == 0) {

        
$closest $word;
        
$shortest 0;

        break;
    }

    if (
$lev <= $shortest || $shortest 0) {

        
$closest  $word;
        
$shortest $lev;
    }
}

echo 
"Valor a buscar: $input\n";
if (
$shortest == 0) {
    echo 
"Valor exacto: $closest\n";
} else {
    echo 
"El mas cercano: $closest?\n";
}

?>
  #4 (permalink)  
Antiguo 12/10/2014, 12:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: PHP con Tabla MYSQL

Utilice una mezcla de PHP y Matemáticas y quedo pronto, solo restan unos detalles a resolver.
  #5 (permalink)  
Antiguo 12/10/2014, 15:27
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: PHP con Tabla MYSQL

Y cual es el objetivo de hacer eso? quizás halla otras vías mas rápidas y simples de hacer lo mismo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: mysql, tabla
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 08:12.