Foros del Web » Programando para Internet » PHP »

como separar una cadena ?

Estas en el tema de como separar una cadena ? en el foro de PHP en Foros del Web. tengo varias cadenas de la siguente forma qw3456ertcbn 37876vfgj45567 adeaa424adq12479 654qwelpp323788qcvfbfn lo que tengo que hacer es insertar un punto y como ";" cuando cambia ...
  #1 (permalink)  
Antiguo 15/06/2011, 21:14
 
Fecha de Ingreso: septiembre-2010
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
como separar una cadena ?

tengo varias cadenas de la siguente forma

qw3456ertcbn
37876vfgj45567
adeaa424adq12479
654qwelpp323788qcvfbfn

lo que tengo que hacer es insertar un punto y como ";" cuando cambia de numerico a letra o viceversa

muchas gracias por su ayuda
  #2 (permalink)  
Antiguo 15/06/2011, 21:17
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como separar una cadena ?

es un buen desafio, lo voy a analizar y te contesto
__________________
la la la
  #3 (permalink)  
Antiguo 15/06/2011, 22:05
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como separar una cadena ?

Bueno amigo he creado una funcion que te va a servir, fijate si te funciona bien

Código PHP:
function agregarPuntoyComa($cadena)
{
    
$result ='';
    for(
$i=0;$i<strlen($cadena);$i++)
    {
        
$result .=  $cadena[$i];
        if(
is_numeric($cadena[$i]))
        {
            if(!
is_numeric($cadena[$i+1]))
            {
                
$result .= ';';
            }
        }else{
            
            if((
$i+1) < strlen($cadena))
            {
                if(
is_numeric($cadena[$i+1]))
                {
                    
$result .=  ';';
                }
            }
        }
        
    }
    return 
$result;
}

//la cadena
$cadena '654qwelpp323788qcvfbfn';
//lamo a la funcion con la cadena como parametro y la imprimo en pantalla
echo agregarPuntoyComa($cadena); 
__________________
la la la
  #4 (permalink)  
Antiguo 17/06/2011, 20:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: como separar una cadena ?

si, funciona de maravilla, mil gracias !
  #5 (permalink)  
Antiguo 17/06/2011, 21:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: como separar una cadena ?

Aquí propongo el mio
Código PHP:
Ver original
  1. <?php
  2. function addSeparator($string, $separator = ';')
  3. {
  4.     preg_match_all('/\pL+|\d+/i', $string, $m);
  5.     return !empty($m[0])
  6.         ? implode($separator, $m[0])
  7.         : false;
  8. }
  9.  
  10. $str = '';
  11. var_dump(addSeparator($str)); // imprime bool(false)
  12.  
  13. $str = 'foo123bar456baz7candy89';
  14. var_dump(addSeparator($str)); // imprime string(30) "foo;123;bar;456;baz;7;candy;89"
  15.  
  16. $str = 'foo123bar456baz7candy89';
  17. var_dump(addSeparator($str, '-')); // imprime string(30) "foo-123-bar-456-baz-7-candy-89"
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 17/06/2011, 22:32
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como separar una cadena ?

Cita:
Iniciado por abimaelrc Ver Mensaje
Aquí propongo el mio
Código PHP:
Ver original
  1. <?php
  2. function addSeparator($string, $separator = ';')
  3. {
  4.     preg_match_all('/\pL+|\d+/i', $string, $m);
  5.     return !empty($m[0])
  6.         ? implode($separator, $m[0])
  7.         : false;
  8. }
  9.  
  10. $str = '';
  11. var_dump(addSeparator($str)); // imprime bool(false)
  12.  
  13. $str = 'foo123bar456baz7candy89';
  14. var_dump(addSeparator($str)); // imprime string(30) "foo;123;bar;456;baz;7;candy;89"
  15.  
  16. $str = 'foo123bar456baz7candy89';
  17. var_dump(addSeparator($str, '-')); // imprime string(30) "foo-123-bar-456-baz-7-candy-89"
IMPRESIONANTE !!!
__________________
la la la
  #7 (permalink)  
Antiguo 17/06/2011, 23:07
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: como separar una cadena ?

Aquí propongo el mío:

Código PHP:
$a 'foo123bar456baz7candy89'$b '';
$i strlen($a);
while(
$i-- > 0)
    
$b = ($i && is_numeric($a[$i 1]) !=
        
is_numeric($a[$i]) ? ';' '') . $a[$i] . $b;
echo 
$b
Saludos,
  #8 (permalink)  
Antiguo 17/06/2011, 23:09
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como separar una cadena ?

JEJE esto se está convirtiendo en un desafio, para ver quien lo hace en menos lineas jeje
__________________
la la la
  #9 (permalink)  
Antiguo 17/06/2011, 23:25
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: como separar una cadena ?

Hey,

Cita:
Iniciado por truman_truman Ver Mensaje
JEJE esto se está convirtiendo en un desafio, para ver quien lo hace en menos lineas jeje


Bueno, realmente es exactamente lo que ya habías hecho, lo único que lo resumí usando un operador ternario y el orden en que se concatenan los resultados, solamente es para mostrar otro punto de vista.

Saludos,
  #10 (permalink)  
Antiguo 18/06/2011, 09:59
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como separar una cadena ?

Cita:
Iniciado por HackmanC Ver Mensaje
Hey,





Bueno, realmente es exactamente lo que ya habías hecho, lo único que lo resumí usando un operador ternario y el orden en que se concatenan los resultados, solamente es para mostrar otro punto de vista.

Saludos,
OJO !!! lo mio no es una queja, ojalá todos posteen su codigo asi vemos las distintas formas de hacerlo de cada uno y aprendemos del otro, esa es la idea
Saludos
__________________
la la la
  #11 (permalink)  
Antiguo 18/06/2011, 10:16
Avatar de RoggerElfo  
Fecha de Ingreso: enero-2008
Ubicación: En la ciudad de los Reyes LIMA !
Mensajes: 121
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: como separar una cadena ?

aqui va el mioooo !!!


naaa no lo intente XD

Etiquetas: cadenas
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 12:57.