Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/04/2009, 17:26
Surfiction
 
Fecha de Ingreso: enero-2008
Mensajes: 132
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Comparacion de mayor similitu de cadenas

Esta puede funcionar para lo que necesitas...devuelve el % de similitud

Segun yo lo que hace es

1. Limpiar la cadena dejando solamente letras
2. Eliminando los espacios dobles entre las palabras
3. Compara cada palabra del array mas largo en el mas pequeño y va contando las coincidencias.

Código PHP:

function str_compare($str1$str2) {
    
$count 0;
    
    
$str1 ereg_replace("[^a-z]"' 'strtolower($str1));
    while(
strstr($str1'  ')) {
        
$str1 str_replace('  '' '$str1);
    }
    
$str1 explode(' '$str1);
    
    
$str2 ereg_replace("[^a-z]"' 'strtolower($str2));
    while(
strstr($str2'  ')) {
        
$str2 str_replace('  '' '$str2);
    }
    
$str2 explode(' '$str2);
    
    if(
count($str1)<count($str2)) {
        
$tmp $str1;
        
$str1 $str2;
        
$str2 $tmp;
        unset(
$tmp);
    }
    
    for(
$i=0$i<count($str1); $i++) {
        if(
in_array($str1[$i], $str2)) {
            
$count++;
        }
    }
    
    return 
$count/count($str2)*100;

__________________
surfiction.org

Última edición por Surfiction; 07/04/2009 a las 17:34