Foros del Web » Programando para Internet » PHP »

duda con strings

Estas en el tema de duda con strings en el foro de PHP en Foros del Web. Hola a todos! Tengo una duda con los strings. Quiero separar un string en grupos. por ejemplo "ABCDEFGHIJK" ---> "ABC-DEFG-HIJ-K"; había pensado hacer lo siguiente; ...
  #1 (permalink)  
Antiguo 22/08/2006, 02:46
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 11 años, 9 meses
Puntos: 0
duda con strings

Hola a todos!
Tengo una duda con los strings.
Quiero separar un string en grupos. por ejemplo

"ABCDEFGHIJK" ---> "ABC-DEFG-HIJ-K";

había pensado hacer lo siguiente;

Código PHP:
$pal="ABCDEFGHIJK";
$pal[3]="-"
pero me sustituye la "E" por "-".

¿Conocéis alguna función para hacer esto?
He buscado mucho pero no encuentro ninguna.

Muchas gracias
  #2 (permalink)  
Antiguo 22/08/2006, 03:02
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años
Puntos: 1
si tubieses la cadena ABC-DEFG-HIJ-K sería facil haciendo un explode("-",$pal);

pero al querer hacerlo sin un separador en concreto la verdad que no se muy bien como podrías hacerlo, sigues algun patron a la hora de separar el string o es algo aleatorio?
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 22/08/2006, 03:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 11 años, 9 meses
Puntos: 0
Se trata de separar los números de cuenta en los grupos correspondientes. Como no he encontrado una función específica para ello, he hecho un trocito de código. Lo pongo, por si a alguien alguna vez le viene bien.

Gracias de todas formas!!


Cita:
public function separargrupos($palabra){
$pal=$palabra;
$i=0;

while($i<strlen($pal)){

if($i==3){
$aux=$aux.$pal[$i]."-";
}
else if($i==7){
$aux=$aux.$pal[$i]."-";

}
else if($i==9){
$aux=$aux.$pal[$i]."-";
}else{
$aux=$aux.$pal[$i];
}
$i++;
}
return $aux;
Como quiero poner un guión después de los 4 primeros números, traslado los demás una posición atrás.

graciasss
  #4 (permalink)  
Antiguo 22/08/2006, 09:50
 
Fecha de Ingreso: agosto-2006
Mensajes: 41
Antigüedad: 11 años, 4 meses
Puntos: 2
Puedes crear una función para ello. Por ejemplo:

Código PHP:
function formato($cadena,$formato,$separador) {
    
$puntero 0;
    
$result "";
    for (
$i=0;$i<count($formato);$i++) {
        
$subs substr($cadena,$puntero,$formato[$i]);
        
$puntero+= $formato[$i];
        
$result.= $subs.$separador;
    }
    return 
substr($result,0,strlen($result)-1);
}
$formato = array(3,4,3,1);
echo 
formato("ABCDEFGHIJK",$formato,"-"); 
En el array formato le pasas las posiciones donde quieres poner el separador

Albert Lanchas
http://www.albertlanchas.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:35.