Tengo que detectar las posiciones en que aparece una palabra en una cadena y eso para más de una palabra. La cadena puede tener una longitud variable.
P.ej. en cadena "abxxxcocheasamcasaoycochesdfsfcochekdkcasa" -> coche sale en las posiciones 5, 20, 30 y casa en 14
El resultado a obtener es, siguiendo ese mismo orden de posiciones, imprimir en pantalla el texto "BMW" (caso 'coche') y "EDIFICIO" (caso 'casa') para cada una de esas veces.
Siguiendo el ejemplo anterior, el resultado tendría que ser -> BMW BMW BMW EDIFICIO
El problema:
-> Trabajo en el código de más abajo, pero no sé como "automatizarlo", bien con alguna función, bucle, etc.
-> He probado también con la función substr_compare, pero todavía me lío más.
-> ¿Quizás mi planteamiento de partida no es correcto?
Gracias por adelantado.
Código PHP:
$cadena = 'abxxxcocheasamcasaoycochesdfsfcochekdkcasa';
$encuentrame = 'coche';
$posicion = strpos($cadena, $encuentrame);
echo 'Cadena: ' .$cadena.'<br>';
echo 'Longitud cadena: ' .strlen($cadena).'<br />';
if ($posicion == false) {
echo "La cadena '$encuentrame' no está en '$cadena'";
} else {
//caso 'coche'
$coche = 1; //para imprimir después la palabra 'BMW'
echo "La cadena '$encuentrame' está en la posición $posicion de '$cadena'";
}