I don’t know if this makes sense:
$string="abclxoxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyelove";
$string_split=str_split($string);
$chars=str_split("love");
$charToSearchFor='l';
$pos=0;
$positions=array();
$continue=true;
while ($continue){
if (false !== ($newPos=strpos($string, $chars[0], $pos))){
$pos=$newPos+1;
array_push($positions, $newPos);
}else{
$continue=false;
}
}
echo "<br /><span style=\\"color: red;\\">".$chars[0]." = </span><br />";
var_dump($positions);
$pos=0;
$positions2=array();
$continue=true;
while ($continue){
if (false !== ($newPos=strpos($string, $chars[1], $pos))){
$pos=$newPos+1;
array_push($positions2, $newPos);
}else{
$continue=false;
}
}
echo "<br /><span style=\\"color: red;\\">".$chars[1]." = </span><br />";
var_dump($positions2);
$pos=0;
$positions3=array();
$continue=true;
while ($continue){
if (false !== ($newPos=strpos($string, $chars[2], $pos))){
$pos=$newPos+1;
array_push($positions3, $newPos);
}else{
$continue=false;
}
}
echo "<br /><span style=\\"color: red;\\">".$chars[2]." = </span><br />";
var_dump($positions3);
$pos=0;
$positions4=array();
$continue=true;
while ($continue){
if (false !== ($newPos=strpos($string, $chars[3], $pos))){
$pos=$newPos+1;
array_push($positions4, $newPos);
}else{
$continue=false;
}
}
echo "<br /><span style=\\"color: red;\\">".$chars[3]." = </span><br />";
var_dump($positions4);
echo $string."<br />";
for($i=0; $i<count($positions); $i++){
for($j=0; $j<count($positions2); $j++){
$distance=$positions2[$j]-$positions[$i];
//echo "<span style=\\"color: red;\\"> ".$distance.", </span>";
for($k=1; $k<count($chars)+1; $k++){
if($string_split[$distance*$k-1]==$chars[$k-1]){
echo "<span style=\\"font-weight: bold;\\">distance = <span style=\\"color: blue; font-weight: bold;\\">".$distance."</span>, <span style=\\"font-weight: bold;\\">letter</span> = <span style=\\"color: red; font-weight: bold;\\">".$string_split[$distance*$k-1]."</span>; ";
}
}
}
echo "<br />";
}
Output:
l =
array(15) { [0]=> int(3) [1]=> int(14) [2]=> int(21) [3]=> int(28) [4]=> int(39) [5]=> int(46) [6]=> int(53) [7]=> int(64) [8]=> int(71) [9]=> int(78) [10]=> int(89) [11]=> int(96) [12]=> int(103) [13]=> int(114) [14]=> int(121) }
o =
array(16) { [0]=> int(5) [1]=> int(7) [2]=> int(16) [3]=> int(22) [4]=> int(32) [5]=> int(41) [6]=> int(47) [7]=> int(57) [8]=> int(66) [9]=> int(72) [10]=> int(82) [11]=> int(91) [12]=> int(97) [13]=> int(107) [14]=> int(116) [15]=> int(122) }
v =
array(15) { [0]=> int(11) [1]=> int(18) [2]=> int(23) [3]=> int(36) [4]=> int(43) [5]=> int(48) [6]=> int(61) [7]=> int(68) [8]=> int(73) [9]=> int(86) [10]=> int(93) [11]=> int(98) [12]=> int(111) [13]=> int(118) [14]=> int(123) }
e =
array(15) { [0]=> int(15) [1]=> int(20) [2]=> int(24) [3]=> int(40) [4]=> int(45) [5]=> int(49) [6]=> int(65) [7]=> int(70) [8]=> int(74) [9]=> int(90) [10]=> int(95) [11]=> int(99) [12]=> int(115) [13]=> int(120) [14]=> int(124) } abclxoxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyelove
distance = 4, letter = l; distance = 4, letter = o; distance = 4, letter = v; distance = 4, letter = e; distance = 29, letter = l; distance = 29, letter = o; distance = 29, letter = v; distance = 29, letter = e; distance = 54, letter = l; distance = 54, letter = o; distance = 79, letter = l; distance = 104, letter = l;
distance = 8, letter = v; distance = 33, letter = v;
distance = 4, letter = l; distance = 4, letter = o; distance = 4, letter = v; distance = 4, letter = e; distance = 29, letter = l; distance = 29, letter = o; distance = 29, letter = v; distance = 29, letter = e; distance = 54, letter = l; distance = 54, letter = o; distance = 79, letter = l;
distance = 8, letter = v; distance = 33, letter = v;
distance = 4, letter = l; distance = 4, letter = o; distance = 4, letter = v; distance = 4, letter = e; distance = 29, letter = l; distance = 29, letter = o; distance = 29, letter = v; distance = 29, letter = e; distance = 54, letter = l; distance = 54, letter = o;
distance = 8, letter = v; distance = 33, letter = v;
distance = 4, letter = l; distance = 4, letter = o; distance = 4, letter = v; distance = 4, letter = e; distance = 29, letter = l; distance = 29, letter = o; distance = 29, letter = v; distance = 29, letter = e;
distance = 8, letter = v; distance = 33, letter = v;
distance = 4, letter = l; distance = 4, letter = o; distance = 4, letter = v; distance = 4, letter = e;
distance = 8, letter = v;