Foros del Web » Programando para Internet » PHP »

Reemplazar parte de una cadena

Estas en el tema de Reemplazar parte de una cadena en el foro de PHP en Foros del Web. Hola, como estan? Les comento mi problema, a ver si me podeis aclarar las ideas, Resulta que tengo una cadena con nombres separada por ; ...
  #1 (permalink)  
Antiguo 14/01/2005, 12:57
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 8 meses
Puntos: 0
Reemplazar parte de una cadena

Hola, como estan?

Les comento mi problema, a ver si me podeis aclarar las ideas,

Resulta que tengo una cadena con nombres separada por ; asi:

pedro;pepe;pedro;juan;pedro

Tengo la cadena troceada por un explode por los ;, con lo que puedo averiguar cada nombre en que posicion de la cadena con respecto al explode esta:

pedro;pepe;pedro;juan;pedro;
0 1 2 3 4

, y ahora quiero sustituir la cadena pedro; pero la que esta en la posicion 2 del explode, lo he intentado con la funcion str_replace pero me sustituye los dos pedros, es decir, pedro (0) y pedro (2) ¿Alguna idea de como puedo hacerlo?

Un Saludo y gracias
  #2 (permalink)  
Antiguo 14/01/2005, 13:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
No te sirve llamar directamente a la posicion 2 en el str_replace?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 14/01/2005, 13:41
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 10 meses
Puntos: 771
Hola jpalbox

¿Te serviría la función array_splice()?

http://es2.php.net/manual/es/function.array-splice.php

Saludos,
  #4 (permalink)  
Antiguo 14/01/2005, 14:53
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 8 meses
Puntos: 0
Creo que si me puede servir, me da este error:

Parse error: parse error, unexpected T_STRING, expecting

$cadenarestante= array array_splice ( $cadenainicial, $posicion,1,"");

es posible que no aplique bien la funcion
  #5 (permalink)  
Antiguo 14/01/2005, 15:22
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Cita:
Iniciado por jpalbox
Creo que si me puede servir, me da este error:

Parse error: parse error, unexpected T_STRING, expecting

$cadenarestante= array array_splice ( $cadenainicial, $posicion,1,"");

es posible que no aplique bien la funcion
$cadenarestante= array array_splice ( $cadenainicial, $posicion,1,"");
que es el primer ARRAY que marque en negrita?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 14/01/2005, 15:45
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 8 meses
Puntos: 0
Copie mal la funcion.

Última edición por jpalbox; 15/01/2005 a las 16:33
  #7 (permalink)  
Antiguo 15/01/2005, 16:34
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 8 meses
Puntos: 0
Ahora cuando la ejecuto me sustituye toda la cadena por la palabra array;


$cadenarestante=array_splice ( $cadena, $posicion,1,"");

???????

  #8 (permalink)  
Antiguo 16/01/2005, 04:28
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 10 meses
Puntos: 771
Hola de nuevo.

La función te devuelve un Array. Si pones

echo $cadenarestante[0];

te debería salir el elemento que has suprimido.

Saludos,
  #9 (permalink)  
Antiguo 16/01/2005, 06:39
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 8 meses
Puntos: 0
Me he expresado mal, el problema no esta en el elemento que borra, pues eso aparentemente lo hace bien, el problema esta en la cadena que queda despues de haber borrado el elemento, que me regresa "Array", yo obtengo la cadena despues de haber realizado la sustitucion con;

echo $cadena;

¿Como me puedo dirigir al array para que lo muestre como cadena?
¿el problema puede ser en la forma de obtener el valor total del array restante???????
  #10 (permalink)  
Antiguo 16/01/2005, 07:05
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 15 años, 8 meses
Puntos: 0
ya lo solucione pues lo hice leyendo los elementos del array restante con la funcion:

$cadena= implode(";",$cadena);


Muchas gracias a todos, por hacer este foro posible.

Un Saludo
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 01:40.