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.