2016-10-26 2 views
-1

Ich muss gemeinsamen Text aus zwei Zeichenfolgen extrahieren.Vergleichen von zwei Strings und extrahieren gemeinsamen Text

Beispiel:

$text1 = "My name is John. I like apples. I drive a car. Nice to meet you"; 
$text2 = "My name is John. I like pears. I don't drive."; 

#TODO function 

$text3 = get_common_text($text1,$text2); 

echo $text3; 
//Result: "My name is John. I like . I drive." 
+1

Haben Sie nur gemeinsame sequentielle Strings in einem ** Satz zu extrahieren beabsichtigen ** ? –

+2

Versuchen Sie [https://github.com/chrisboulton/php-diff](https://github.com/chrisboulton/php-diff) –

+0

Was wäre die gewünschte Ausgabe, wenn '$ text2 =" John ist mein Name. Ich mag Birnen, ich fahre nicht. ";'? –

Antwort

1

die Sie interessieren, ich glaube, es ist richtig

$text1 = explode(' ', "My name is John. I like apples. I drive a car. Nice to meet you"); 
$text2 = explode(' ', "My name is John. I like pears. I don't drive."); 
foreach($text2 as $key) 
{ 
    if(strpos($key, '.') !== false) 
    { 
     $temp = explode('.', $key); 
     $text2[$key] = $temp[0]; 
    } 
} 
$common = array(); 
foreach($text1 as $key) 
{ 
    if(strpos('.', $key)) 
    { 
     $temp = explode($key, '.'); 
     echo $temp[0]; 
    } 
    if(in_array($key, $text2)) 
    { 
     $common[] = $key; 
    } 
} 
$common = implode(' ', $common); 

echo $common; 

Ausgang ist My name is John. I like I drive

+0

Die Punkte gingen verloren. Das ist also nicht wirklich ein Problem? – RST

+0

@prgrm FYI, dies erzeugt nicht die angegebene gewünschte Ausgabe, wenn die zweite Eingabe 'John is My name' ist. Ich mag Birnen. Ich fahre nicht –

Verwandte Themen