Tengo una función..que me da la posición de un guión de una cadena. Contando de atrás hacia adelante.
Código PHP:
function strrpos_count($haystack, $needle, $count)
{
if($count <= 0)
return false;
$len = strlen($haystack);
$pos = $len;
for($i = 0; $i < $count && $pos; $i++)
$pos = strrpos($haystack, $needle, $pos - $len - 1);
return $pos;
}
$direccion="AV. GIUSEPPE GARIBALDI NRO. 396 382-386-398,AV SN. FELIPE 628-630 Y 640 LIMA - LIMA - JESUS MARIA";
$pos=strrpos_count($direccion,"-",3);//OBTENGO 62... que es la posición del guión de la cadena "628-630"
//SI ME DEVUELVE UNA POSICIÓN,SI EXISTE UN TERCER GUION
if ($pos) {
//REEMPLAO EL TERCER GUION POR UNA COMA.
$direccion = substr_replace($direccion,",",$pos,1);
}
echo $direccion;
RESULTADO:
Código HTML:
AV. GIUSEPPE GARIBALDI NRO. 396 382-386-398,AV SN. FELIPE 628,630 Y 640 LIMA - LIMA - JESUS MARIA;
Pero lo que se desea no es solo reemplazar el tercer GUIÓN encontrado por una COMA, sino todas las anteriores.
Y generar algo como:
Código HTML:
AV. GIUSEPPE GARIBALDI NRO. 396 382,386,398,AV SN. FELIPE 628,630 Y 640 LIMA - LIMA - JESUS MARIA;
Espero que sea más claro, esta vez.