Foros del Web » Programando para Internet » PHP »

Ayuda con str_replace (no tomara mucho tiempo)

Estas en el tema de Ayuda con str_replace (no tomara mucho tiempo) en el foro de PHP en Foros del Web. Es una función muy simple la de str_replace por lo que estuve leyendo, pero la verdad que no logro solucionar el problema que tengo, quizás ...
  #1 (permalink)  
Antiguo 14/03/2009, 13:54
 
Fecha de Ingreso: enero-2007
Ubicación: Argentina
Mensajes: 28
Antigüedad: 17 años, 2 meses
Puntos: 0
Información Ayuda con str_replace (no tomara mucho tiempo)

Es una función muy simple la de str_replace por lo que estuve leyendo, pero la verdad que no logro solucionar el problema que tengo, quizás el arbol me esté tapando el bosque... me dan una mano por favor?

Gracias.

Código PHP:
 <?Php
$frase_original  
"C";

$nueva_frase str_replace("C""Cualquiera"$frase_original);
$nueva_frase str_replace("0""Centro"$frase_original);


echo 
$nueva_frase;
  
?>
Imprime C en vez de Cualquiera :S
  #2 (permalink)  
Antiguo 14/03/2009, 14:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

Claro, porque en $frase_original no hay "0" para ser reemplazado y se queda como "C".

Prueba asi:

Código php:
Ver original
  1. $frase_original  = "C";
  2.  
  3. $nueva_frase = str_replace("C", "Cualquiera", $frase_original);
  4. echo $nueva_frase . '<br />';
  5.  
  6.  
  7. $nueva_frase = str_replace("0", "Centro", $frase_original);
  8. echo $nueva_frase;
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/03/2009, 14:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

y demas... para el segundo reemplazo sigues usando la cadena original, y no la nueva...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 14/03/2009, 15:15
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

Código PHP:
 <?php
$frase_original  
"C";

$nueva_frase str_replace("C""Cualquiera"$frase_original);
$nueva_frase str_replace("0""Centro"$nueva_frase);


echo 
$nueva_frase;
  
?>
En la segunda tienes que cambiarlo en nueva_frase y no en frase_original.
  #5 (permalink)  
Antiguo 14/03/2009, 15:30
 
Fecha de Ingreso: enero-2007
Ubicación: Argentina
Mensajes: 28
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

No se solucionó mi problema del todo.

Les comento como es.

Yo leo desde una base de datos un numero que ese numero quiere decir un barrio, si?
O sea, a:
C, le corresponde: Cualquiera.
0 -> Centro
1 -> Alta Córdoba
2 -> Alto Alberdi
3 -> Alto General Paz
(asi con 35 barrios mas)

Ahora bien,

la funcion a la cual cambie fue a la siguiente:

Código PHP:
$frase_original  $filaPagina2["barrio"];

$nueva_frase str_replace("C""Cualquiera"$frase_original);
$nueva_frase str_replace("0""Centro"$nueva_frase);
$nueva_frase str_replace("1""Alta C&oacute;rdoba"$nueva_frase);
$nueva_frase str_replace("2""Alto Alberdi"$nueva_frase);
$nueva_frase str_replace("3""Alto General Paz"$nueva_frase);
//continua asi...
$nueva_frase str_replace("30""Urca"$nueva_frase); 
Pero cuando por ejemplo, en la base de datos sale que al usuario le corresponde el barrio 30, imprime:
Alto General PazCentro

En vez de imprimir Urca

Se entiende?

Quizás deba usar un if... no se, Ayuda !
  #6 (permalink)  
Antiguo 14/03/2009, 15:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

Empieza a reemplazar alreves. Osea, por ejemplo tienes 30 barrios, empieza desde el 30 hasta el 0.

Aunque yo utilizaria un array.

Hago un array con todos los barrios, y luego:
$barrio = 30
echo $foo[$barrio]

Donde $foo es el array que contiene los barrios (con indices numericos)
  #7 (permalink)  
Antiguo 14/03/2009, 16:52
 
Fecha de Ingreso: enero-2007
Ubicación: Argentina
Mensajes: 28
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

Cita:
Iniciado por Ronruby Ver Mensaje
Empieza a reemplazar alreves. Osea, por ejemplo tienes 30 barrios, empieza desde el 30 hasta el 0.

Aunque yo utilizaria un array.

Hago un array con todos los barrios, y luego:
$barrio = 30
echo $foo[$barrio]

Donde $foo es el array que contiene los barrios (con indices numericos)
Es mucha molestia que me expliquen lo de array, porque la verdad que no tengo idea como se hace.
  #8 (permalink)  
Antiguo 14/03/2009, 16:58
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

Está mal planteado entonces. STR_REPLACE no es la mejor solución.

Yo lo haría con un array, tal y como te ha dicho Ronruby.

Código PHP:
<?
$valor 
= array();
$valor["C"] = "Cualquiera"//Seria mucho mejor que solo utilizases numeros y no la C... pero bueno
$valor["0"] = "Centro";
$valor["1"] = "Alta C&oacute;rdoba";
//...
$valor["30"] = "Urca";

$numerobarrio $filaPagina2["barrio"];

//Y aqui lo tienes
$barrio $valor[$numerobarrio];

//Mostrandolo
echo $barrio//Suponiendo que el valor era 30, aparecera "Urca"
?>
  #9 (permalink)  
Antiguo 14/03/2009, 17:05
 
Fecha de Ingreso: enero-2007
Ubicación: Argentina
Mensajes: 28
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Ayuda con str_replace (no tomara mucho tiempo)

Cita:
Iniciado por david_M_G Ver Mensaje
Está mal planteado entonces. STR_REPLACE no es la mejor solución.

Yo lo haría con un array, tal y como te ha dicho Ronruby.

Código PHP:
<?
$valor 
= array();
$valor["C"] = "Cualquiera"//Seria mucho mejor que solo utilizases numeros y no la C... pero bueno
$valor["0"] = "Centro";
$valor["1"] = "Alta C&oacute;rdoba";
//...
$valor["30"] = "Urca";

$numerobarrio $filaPagina2["barrio"];

//Y aqui lo tienes
$barrio $valor[$numerobarrio];

//Mostrandolo
echo $barrio//Suponiendo que el valor era 30, aparecera "Urca"
?>
Genial!

Funciona a la perfección,

Gracias!!!
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 02:17.