Foros del Web » Programando para Internet » PHP »

funcion recursiva para setear valores de un array

Estas en el tema de funcion recursiva para setear valores de un array en el foro de PHP en Foros del Web. Hola senores. necesito crear una funcion recursiva que me permita setear el valor de todos los elementos de un array(); @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 12/09/2012, 14:33
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 1 mes
Puntos: 2
funcion recursiva para setear valores de un array

Hola senores.
necesito crear una funcion recursiva que me permita setear el valor de todos los elementos de un array();
Código PHP:
Ver original
  1. $my_array = array('algo' => 'nada', 'qwer' => array('uno' =>1, 'dos' =>2));

La idea es que cada elemento de este array pueda pasarlo por base64_encode


estuve jugando un poco con la funcion array_walk_recursive pero quede

Saludos!
  #2 (permalink)  
Antiguo 12/09/2012, 14:52
 
Fecha de Ingreso: julio-2012
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 3
Respuesta: funcion recursiva para setear valores de un array

Intenta con array_map
  #3 (permalink)  
Antiguo 12/09/2012, 15:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: funcion recursiva para setear valores de un array

¿Qué no entendiste de array_walk_recursive?
Es facil lograrlo
Código PHP:
Ver original
  1. <?php
  2. $my_array = array('algo' => 'nada', 'qwer' => array('uno' =>1, 'dos' =>2));
  3. array_walk_recursive($my_array, function(&$v){ $v = base64_encode($v); });
  4. var_dump($my_array);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 12/09/2012, 15:07
Avatar de esteban_dc  
Fecha de Ingreso: septiembre-2012
Ubicación: México, D. F., Mexico
Mensajes: 9
Antigüedad: 11 años, 7 meses
Puntos: 3
Respuesta: funcion recursiva para setear valores de un array

Usando array_walk_recursive se puede sin problemas

$my_array = array('algo' => 'nada', 'qwer' => array('uno' =>1, 'dos' =>2));

function base64array($item,$key,$array_encode){
$array_encode[$key] = base64_encode($item);
}

array_walk_recursive($my_array, 'base64array',&$array_encode);
print_r($array_encode);
  #5 (permalink)  
Antiguo 12/09/2012, 15:25
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: funcion recursiva para setear valores de un array

Gracias por sus comentarios y tiempo invertido :)

Cita:
Iniciado por esteban_dc Ver Mensaje
Usando array_walk_recursive se puede sin problemas

$my_array = array('algo' => 'nada', 'qwer' => array('uno' =>1, 'dos' =>2));

function base64array($item,$key,$array_encode){
$array_encode[$key] = base64_encode($item);
}

array_walk_recursive($my_array, 'base64array',&$array_encode);
print_r($array_encode);
Eso es exactamente lo que quería poder setear tando el indice como su valor.

ahora me preocupa esta alerta del navegador.
Deprecated: Call-time pass-by-reference has been deprecated in

Saludos!
  #6 (permalink)  
Antiguo 12/09/2012, 15:31
Avatar de cesarin3134  
Fecha de Ingreso: enero-2012
Ubicación: Milan
Mensajes: 97
Antigüedad: 12 años, 3 meses
Puntos: 20
Respuesta: funcion recursiva para setear valores de un array

podrias tambien usar la funcion
Código PHP:
Ver original
  1. array_walk ($array, 'tu funcion')
le pasas el array y creas una funcion que se la pasas como segundo parametro, asi modificas cada elemento del array.
__________________
Web Graphic and Front-End Developer C.andavisa
http://www.cesart.it
  #7 (permalink)  
Antiguo 12/09/2012, 15:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: funcion recursiva para setear valores de un array

Pero para ello está recursive, para recorrer cuando encuentra otro array adentro del array, solo es cuestión de añadir un & al primer parametro. En vez de hacer lo que hice con una función anónima solo es cuestión de llamar otra función

Código PHP:
Ver original
  1. <?php
  2. $my_array = array('algo' => 'nada', 'qwer' => array('uno' =>1, 'dos' =>2));
  3. function something(&$v){ $v = base64_encode($v); }
  4. array_walk_recursive($my_array, 'something');
  5. var_dump($my_array);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 12/09/2012, 15:38
Avatar de cesarin3134  
Fecha de Ingreso: enero-2012
Ubicación: Milan
Mensajes: 97
Antigüedad: 12 años, 3 meses
Puntos: 20
Respuesta: funcion recursiva para setear valores de un array

me parece perfecto !!!
__________________
Web Graphic and Front-End Developer C.andavisa
http://www.cesart.it
  #9 (permalink)  
Antiguo 12/09/2012, 15:51
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: funcion recursiva para setear valores de un array

Cita:
Iniciado por abimaelrc Ver Mensaje
Pero para ello está recursive, para recorrer cuando encuentra otro array adentro del array, solo es cuestión de añadir un & al primer parametro. En vez de hacer lo que hice con una función anónima solo es cuestión de llamar otra función

Código PHP:
Ver original
  1. <?php
  2. $my_array = array('algo' => 'nada', 'qwer' => array('uno' =>1, 'dos' =>2));
  3. function something(&$v){ $v = base64_encode($v); }
  4. array_walk_recursive($my_array, 'something');
  5. var_dump($my_array);
Ahora te entendí perfectamente estaba un poco mareado...

Etiquetas: funcion, recursiva
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 10:52.