<?php
function getAllWholeWordPos($s,$word){
$retval = false;
$b = " ";
for ($i=0, $max = strlen( $s ); $i < $max; $i++) {
if ( !ctype_alpha( $s[$i] ) ){
$s[$i] = $b;
}
}
while ( ( $pos = stripos( $s, $word) ) !== false ) {
$retval[] = $pos;
var_dump($word,$retval);
for ( $i=0, $max = $pos + 1 + strlen( $word ); $i <= $max; $i++) {
$s[$i] = $b;
}
}
return [$retval,$s];
}
$str = "TheraininSpainstaysmainlyintheplain.";
$d = ["The", "rain", "in", "Spain","stays","mainly","plain"];
$arr = null;
for ($i=0, $max = count($d); $i < $max; $i++) {
list($r,$str) = getAllWholeWordPos($str,$d[$i]);
if (is_array($r)) {
foreach ($r as $key => $val) {
$arr[$key] = $val;
}
} else {
$arr[$r] = $d[$i];
}
}
var_dump($arr);
preferences:
49.88 ms | 402 KiB | 5 Q