3v4l.org

run code in 300+ PHP versions simultaneously
<?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