buenas, volvi.
Bueno, el array_walk no me sirve
.
O sea, le tira la funcion a cada elemento del array... hasta ahi OK.
Pero el array_walk no me permite modificar nada que no sea el propio array que está recorriendo. Estuve buscando en el sitio de php, pero no encontré nada que me sirva como collect "nativo".
Quisiera hacer algo como el segundo ejemplo de este flaco:
http://www.php.net/manual/es/function.ar....php#56897 , que lo resuelve "pasando como referencia" el valor a modificar... y recibiendo como referencia el mismo del otro lado.
O sea, hace esto:
function enumerate( &$item1, $key, &$startNum ) { ... aca modifica startnum ... }
array_walk($fruits, 'enumerate', &$num );// FIjensé que &$num lo pasa por referencia, igual que &$startNum
La idea mia sería que "startNum" sea en realidad un array.
Igual nada... ahora con un for y un if puedo solucionar el problema
... pero no es la idea!
Si a alguno le sirve... hasta encontrar algo mejor lo solucioné de la siguiente forma:
/*
functionToDo es la función que voy a llamar, la obtengo de otro lado. NO es un string, es un "objeto funcion".
theQuery es un conjunto de valores que recibo por post, y que utiliza la función asignada a functionToDo.
Para el ejemplo, solo tiene dos parametros, "value" que es el valor esperado, y "prop1" que es la propiedad a
queryear
Un ejemplo de funcion sería:
$igualComparator = function ($elem,$i,$theQuery){
return $elem->$theQuery["prop1"] == $theQuery["value"];
};
$functionToDo = $igualComparator; // ponele
*/
foreach ($arrayObjects as $key => $elem){
$r = call_user_func($functionToDo,$elem,$key,$theQuery);
if($r){
$queryResponse[] = $elem;
}
}
De paso cañaso les pregunto... ¿Hay algun problema de seguridad con que $theQuery sea algo que obtengo directamente desde el $_POST? (onda, que le puedan pasa algun argumento loco para que modifique alguna variable, o llame a alguna funcion fuera del objeto que estoy consultando)
Gracias de nuevo!