Foros del Web » Programando para Internet » PHP »

Partir cadena por mayúsculas

Estas en el tema de Partir cadena por mayúsculas en el foro de PHP en Foros del Web. Hola a todos. Quiero partir una cadena por mayúsculas y con eso crear un array donde no se repitan los valores. Si tengo esto: CgfGtrgBHythJu ...
  #1 (permalink)  
Antiguo 19/01/2016, 14:09
 
Fecha de Ingreso: febrero-2004
Ubicación: Asturias
Mensajes: 171
Antigüedad: 20 años, 9 meses
Puntos: 0
Partir cadena por mayúsculas

Hola a todos.

Quiero partir una cadena por mayúsculas y con eso crear un array donde no se repitan los valores. Si tengo esto:

CgfGtrgBHythJu

que salga algo como

Cgf,Gtrg,B,Hyth,Ju

¿Sabeis cómo hacerlo con un explode()?

Gracias de antemano
un saludo
  #2 (permalink)  
Antiguo 19/01/2016, 14:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Partir cadena por mayúsculas

Cita:
¿Sabeis cómo hacerlo con un explode()?
Con explode() no se puede.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/01/2016, 14:28
 
Fecha de Ingreso: febrero-2004
Ubicación: Asturias
Mensajes: 171
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Partir cadena por mayúsculas

entonces cómo se haría? llevo un tiempo dando vueltas y no se me ocurre nada
  #4 (permalink)  
Antiguo 19/01/2016, 14:29
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 9 meses
Puntos: 21
Respuesta: Partir cadena por mayúsculas

Con preg_split y array_unique.
Código PHP:
Ver original
  1. $texto = "CgfGtrgBHythJuBJu";
  2. $array = preg_split('/(?=[A-Z])/', $texto, -1, PREG_SPLIT_NO_EMPTY);
  3. $array = array_unique($array);

Etiquetas: cadena
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 14:12.