Foros del Web » Programando para Internet » PHP »

Duda con array_walk

Estas en el tema de Duda con array_walk en el foro de PHP en Foros del Web. Q tal amigos foreros... Estoy realizando sierta clase en php5 y quiero que un usuario pueda aplicar una funcion definida por el a siertos arrays... ...
  #1 (permalink)  
Antiguo 16/07/2009, 16:06
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Duda con array_walk

Q tal amigos foreros...

Estoy realizando sierta clase en php5 y quiero que un usuario pueda aplicar una funcion definida por el a siertos arrays...

Entonces esto lo puedo hacer con la funcion array_walk que aplica una funcion a un array.... aqui la tienen http://www.php.net/array_walk

La cuestion es que esta funcion solo regresa TRUE si las cosas salieron bien... y lo que necesito es que regrese el resultado de aplicar la funcion del usuario

Ej

Código PHP:
function concatena$valor$key  )
{
echo 
$valor.$key;

}


$valores = array( 'primero' => 'segundo' => ) ;
array_walk = ( $valores'concatena'  ); 
Bueno aqui no hay problema todo se realiza perfectamente, pero el resultado es devuelto a la funcion del usuario y lo que yo quiero es que ese valor este disponible en otros lugares...


Algo como esto

Código PHP:
$valoresModificados array_walk = ( $valores'concatena'  ); 
Logicamente lo de arriba no funciona, pero es lo que necesito hacer, alguien tiene alguna idea ?
  #2 (permalink)  
Antiguo 16/07/2009, 16:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con array_walk


Código php:
Ver original
  1. array_walk($valores, 'concatena');
  2. return $valores;

Saludos.
  #3 (permalink)  
Antiguo 16/07/2009, 16:15
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Duda con array_walk

Me regresa el mismo array... no se ven los cambios de la funcion escrita por el usuario =|

Última edición por acoevil; 16/07/2009 a las 16:21
  #4 (permalink)  
Antiguo 16/07/2009, 17:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con array_walk

No entiendo bien que es lo que quieres, en $valores ya tienes los datos nuevos eso lo puedes regresar o poner en otro lado.

Saludos.
  #5 (permalink)  
Antiguo 16/07/2009, 18:30
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Duda con array_walk

Q tal GatorV...


Digamos que tengo esta funcion..

Código PHP:
function concatena($valor)
{
    
$valor '--';
        

La cual quiero utilizar con un array..

Código PHP:
$grid->add_FuncionA('codigo''concatena'); 
Donde codigo es un key de un array asocitavito

El metodo add_FuncionA(/*...*/) es el sgte


Código PHP:
     public function add_FuncionA$columna$funcion )
     {
        
// Se verifica la existencia de la funcion
        
if( function_exists$funcion ) ) {
            
            
$valores $this->_explodeC$this->arrayCampos$columna ] );
            
            
array_walk$valores$funcion );
            
                        
// Aqui esta el problema quiero obtener el resultado de la funcion
                        //del usuario en un array... algo asi si yo hiciera un echo valores[ 0 ]
//deberia de imprimirme   AD05-- donde AD05 se trae de una base de datos...

// Esto solo es un ejemplo de lo que quiero....

                        
            
        
} else {
            
            echo 
"La funcion : "$funcion " No se encuentra definida."
        }
        
     } 


Espero se entienda esta ves...
  #6 (permalink)  
Antiguo 16/07/2009, 19:02
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda con array_walk

Cita:
Iniciado por acoevil Ver Mensaje
La cuestion es que esta funcion solo regresa TRUE si las cosas salieron bien... y lo que necesito es que regrese el resultado de aplicar la funcion del usuario
Ya que tampoco entiendo bien el código último que pusiste, me limito a decir, como mero tip, que array_map() hace exactamente lo mismo que array_walk(). La diferencia es que la primera recibe el array como parámetro y devuelve un nuevo array modificado, mientras que la segunda recibe el array por referencia, es decir, los cambios se hacen en el array original, y por lo tanto, sólo devuelven un valor booleano (true/false)

Es eso lo que buscabas?

  #7 (permalink)  
Antiguo 17/07/2009, 09:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con array_walk

Exacto y es lo mismo para tu ejemplo ya en $valores si la retornas o la pasas por referencia tienes los valores, como veo que estas usando OO, puedes usar $this->var = $valores para tenerla en otros lados, o puedes usar return $valores para retornar como valor en esa función.

Saludos.
  #8 (permalink)  
Antiguo 17/07/2009, 10:40
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Duda con array_walk

Si, de hecho esa fue la solucion, 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 04:52.