I want to highlight sequentially different between 2 string word in PHP, suppose I have 2 String like below.
$string1 = "TO THE ORDER OF United Bank Limited Arab -09254 DT:17-06-20212 ADS";
$string2 = "Arab TO THE ORDER OF United Bank Limited Arab TO -092541 KDS DT:17-06-20212";
The highlighted words should be Arab
To
-092541
and KDS
.
so far I have tried the below code.
<?php
function compare_strings($array1, $array2) {
$array1 = explode(" ", $array1);
$array2 = explode(" ", $array2);
$arSize1=count($array1);
$arSize2=count($array2);
$index=0;
if($arSize1<$arSize2){
for($i=0;$i<$arSize1;$i++){
if($array1[$i]==$array2[($i+$index)]){
echo ' '.$array1[$i];
}
else{
echo ' <b>'.$array2[($i+$index)].'</b>';
$index++;
$i--;
}
}
}
}
$string1 = "TO THE ORDER OF United Bank Limited Arab -09254 DT:17-06-20212 ADS";
$string2 = "Arab TO THE ORDER OF United Bank Limited Arab TO -092541 KDS DT:17-06-20212";
echo $string1.'<br/>';
compare_strings($string1,$string2);
?>
this code works fine if I only add words, like Arab
To
and KDS
and don't change existing word -092541
.
when I change -09254
to -092541
it's start a infinite loop and shows Undefined array key
error.
Expected highlighted words are Arab
TO
-092541
KDS
I tried below answers/libraries but none of these worked for my situation.
@Arif 's answer for a similar question
Side-by-side
class.Diff.php
Any help/guidance will be very appreciated.