
Problemas con arrays
Publicado por Miguel (4 intervenciones) el 01/08/2016 21:26:26
Hola, necesito una mano con la siguiente cuestion:
reemplazar los caracteres de una variable y devolver el resultado en una nueva variable, se me ocurrió hacerlo mediante un array, pero si hubiera otra forma, bienvenida sea...
-------------------------------------------------------------------------------------------------------------------
Problema 1:
$palabra='ABRACADABRA'; //variable que contiene una palabre de x longitud de caracteres
$largo = strlen($palabra); //saco la longitud = 11
$arr_palabra = str_split($palabra); //descompongo la palabra en un array
for ($i=0; $i<($largo); $i++)
{
$change = array($i => "_"); //reemplazo para cada posicion del array la letra por "_"
$ejecucion = array_replace($arr_palabra, $change);
echo $ejecucion[$i]; //me devuelve "_ _ _ _ _ _ _ _ _ _ _"
}
P1: Necesito que este echo sea una variable: $newpalabra
algo asi como $newpalabra = echo $ejecucion[$i]; (cosa que no se puede obviamente)
-------------------------------------------------------------------------------------------------------------------
Problema 2:
$palabra2 = array($newpalabra); //viene del ejercicio anterior
$key = 'A'; //recibo una letra en una variable
$pos1 = strpos($palabra, $key); //averiguo la posicion de la primera A = 0
$pos2 = strpos($palabra, $key, $pos1)+1; //averiguo la posicion de la segunda A = 3ra
$pos3 = strpos($palabra, $key, $pos2)+1; //averiguo la posicion de la tercera A = 5ta
$pos4 = strpos($palabra, $key, $pos3)+1; //averiguo la posicion de la cuarta A = 7ma
$pos5 = strpos($palabra, $key, $pos4)+1; //averiguo la posicion de la quinta A = 10ma
Ahora bien, lo que necesito es lograr esto: A_ _A_A_A__A
a partir de $newpalabra: "_ _ _ _ _ _ _ _ _ _ _"
Lo que se me ocurrió es, sabiendo las posiciones en la cual deberia ir cada letra A,
hacer un array_replace por la posicion de cada $valor => $key
algo asi como:
$change = array($pos1 => $key); //remmplazo el primer "_" por una A
$ejecucion = array_replace($palabra2, $change);
$palabra3 = implode($ejecucion);
y así hasta reemplazar todas A, pero no me funciona! :(
reemplazar los caracteres de una variable y devolver el resultado en una nueva variable, se me ocurrió hacerlo mediante un array, pero si hubiera otra forma, bienvenida sea...
-------------------------------------------------------------------------------------------------------------------
Problema 1:
$palabra='ABRACADABRA'; //variable que contiene una palabre de x longitud de caracteres
$largo = strlen($palabra); //saco la longitud = 11
$arr_palabra = str_split($palabra); //descompongo la palabra en un array
for ($i=0; $i<($largo); $i++)
{
$change = array($i => "_"); //reemplazo para cada posicion del array la letra por "_"
$ejecucion = array_replace($arr_palabra, $change);
echo $ejecucion[$i]; //me devuelve "_ _ _ _ _ _ _ _ _ _ _"
}
P1: Necesito que este echo sea una variable: $newpalabra
algo asi como $newpalabra = echo $ejecucion[$i]; (cosa que no se puede obviamente)
-------------------------------------------------------------------------------------------------------------------
Problema 2:
$palabra2 = array($newpalabra); //viene del ejercicio anterior
$key = 'A'; //recibo una letra en una variable
$pos1 = strpos($palabra, $key); //averiguo la posicion de la primera A = 0
$pos2 = strpos($palabra, $key, $pos1)+1; //averiguo la posicion de la segunda A = 3ra
$pos3 = strpos($palabra, $key, $pos2)+1; //averiguo la posicion de la tercera A = 5ta
$pos4 = strpos($palabra, $key, $pos3)+1; //averiguo la posicion de la cuarta A = 7ma
$pos5 = strpos($palabra, $key, $pos4)+1; //averiguo la posicion de la quinta A = 10ma
Ahora bien, lo que necesito es lograr esto: A_ _A_A_A__A
a partir de $newpalabra: "_ _ _ _ _ _ _ _ _ _ _"
Lo que se me ocurrió es, sabiendo las posiciones en la cual deberia ir cada letra A,
hacer un array_replace por la posicion de cada $valor => $key
algo asi como:
$change = array($pos1 => $key); //remmplazo el primer "_" por una A
$ejecucion = array_replace($palabra2, $change);
$palabra3 = implode($ejecucion);
y así hasta reemplazar todas A, pero no me funciona! :(
Valora esta pregunta


0