Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/02/2007, 12:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: str_ireplace con arrays

Pues claro, pero perfectamente podés guardar la salida en una variable en vez de usar "echo"...

Veamos tu código original:
Código PHP:
str_ireplace($trozos
"<span style='text-decoration: underline'>$trozos</span>"
$row_buscarproy['inv_ap2'].', '.$row_buscarproy['inv_nom']); 
Esto se puede traducir como:
"reemplaza $trozos
por <span style='text-decoration: underline'>$trozos</span>
en $row_buscarproy['inv_ap2'].', '.$row_buscarproy['inv_nom']

Como $trozos es una matriz, y la cadena de reemplazo NO LO ES, cada entrada de $trozos se sustituirá por la cadena de reemplazo.
¿Por qué te muestra simplemente "Array"? porque esa es la salida cuando uno intenta imprimir una matriz sin especificar el índice que se quiere escribir. Probá
echo $trozos
para comprobarlo.

Como supongo que lo que querés es que sustituya por cada palabra encontrada, (es decir, que si encuentra "hola" sustituya por "<span.....>hola</span>"), te sugiero que hagas un foreach, pero no con $trozos sino con cada entrada:

Código PHP:
$salida $row_buscarproy['inv_ap2'].', '.$row_buscarproy['inv_nom'];

foreach (
$trozos as $trozo) {
$salida str_ireplace($trozo
"<span style='text-decoration: underline'>$trozo</span>"$salida);
}
echo 
$salida
Por otro lado, también te sugerí cambiar
"<span style='text-decoration: underline'>$trozos</span>"
por
"<span style='text-decoration: underline'>".current($trozos)</span>"

como otra forma de solucionarlo, sin tener que usar foreach.


Saludos.