Foros del Web » Programando para Internet » PHP »

Evaluar un string como expresion en un vector

Estas en el tema de Evaluar un string como expresion en un vector en el foro de PHP en Foros del Web. hola tengo es siguiente problema, cuando hago un grafico de ghant con php lo correcto es: $data = array( array(0,ACTYPE_NORMAL, " Lunes ", '04:00','12:00',''), array(1,ACTYPE_NORMAL, ...
  #1 (permalink)  
Antiguo 30/06/2005, 10:29
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 7 meses
Puntos: 1
Evaluar un string como expresion en un vector

hola tengo es siguiente problema, cuando hago un grafico de ghant con php lo correcto es:

$data = array(


array(0,ACTYPE_NORMAL, " Lunes ", '04:00','12:00',''),
array(1,ACTYPE_NORMAL, " Martes", '04:00','08:00',''),


);

pero mi problema es que el rango de horas es dinamico y lo saco de una bd

lo cual mi matrinz queda


$data[]=array($s,ACTYPE_NORMAL,$valor_dia[0][1],$valores_horas,'');

esto va dentro de un for donde $valores_horas son las horas, pero el problema es que a esta variable lo toma como un unico valor ya que esta tiene todos los valores separados por , como puedo hacer para que me las tomes como una expresion y no como una cadena probe conviertiendo toda la en un string asi:

$data[]=eval("array($s,ACTYPE_NORMAL,'" . $valor_dia[0][1] . ",$valores_horas,'');");

y usando eval pero no hat forma estoy cansado de probar y no le encuentro la solucion se los agradeceria mucho gracias
__________________
Mas vale morir de pie que vivir de rodillas :ojotes:
  #2 (permalink)  
Antiguo 30/06/2005, 12:22
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
tu código tiene errores de sintaxis, para poder ayudarte primero asegurate de que no tenga errores de ese tipo.
dejando de lado eso, por lo menos yo no te entendí nada. trata de ser mas explícito.
  #3 (permalink)  
Antiguo 30/06/2005, 13:34
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 7 meses
Puntos: 1
bueno primero esta linea la tengo que usar para hacer un grafico lo que pasa que esta recibe una cantidad de horas y estas van separadas por coma

en este caso seria '04:00','12:00'

array(0,ACTYPE_NORMAL, " Lunes ", '04:00','12:00',''),

lo que pasa que esto es dinamico y pueden ser mas cantidades de horas

$valores_horas='04:00','12:00','16:00','18:00';

ej: '04:00','12:00','16:00','18:00'

y lo que pasa que como esta horas la saco de una bd y el array me lo toma como un solo campo ($valores_horas,'') que en realidad son varios todo separados por , como puedo hacer que me reconozca cada "," como una dimension nueva

que al fina quedara asi

$data[]=array($s,ACTYPE_NORMAL,$valor_dia[0][1],$valores_horas,'');

espero haberme explicado
__________________
Mas vale morir de pie que vivir de rodillas :ojotes:
  #4 (permalink)  
Antiguo 30/06/2005, 13:56
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Bueno... lo que necesitas primero es poder generar una cadena que contenga una expresión correcta y luego pasarla por la función eval(). O sea, tienes que "escapar" los signos "$", pues no queremos que esas variables se interpreten... recuerda que queremos armar una expresión primero.
Código PHP:
$valores_horas"'04:00','12:00','16:00','18:00'";
$expresion "\$data[] = array(\$s, ACTYPE_NORMAL, \$valor_dia[0][1], $valores_horas,'');";

// Puedes ver la expresión que debías generar para verificar que esté bien:
echo $expresion;

//Ahora sí ejecutas la expresión
eval($expresion); 
Saludos
  #5 (permalink)  
Antiguo 30/06/2005, 14:30
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 7 meses
Puntos: 1
respuesta

sos un pelotudo popopo eso lo sabe cualquiera
__________________
Mas vale morir de pie que vivir de rodillas :ojotes:
  #6 (permalink)  
Antiguo 30/06/2005, 15:16
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 7 meses
Puntos: 1
disculpen hay mucha gente en mi oficina y lo anterior no lo escribi yo sue simplemente uno que se quiso hacer el gracioso, disculpen por favor
__________________
Mas vale morir de pie que vivir de rodillas :ojotes:
  #7 (permalink)  
Antiguo 01/07/2005, 06:48
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 7 meses
Puntos: 1
mas dudas

garcias pero porbe el codigo que me diste y me tira el siguiente error

Parse error: parse error, unexpected ':', expecting ')' in /home/desarrollo/administracion.cybermodelo.com/procesos/GraficoFranjasHorararias.php(67) : eval()'d code on line 1
__________________
Mas vale morir de pie que vivir de rodillas :ojotes:
  #8 (permalink)  
Antiguo 01/07/2005, 11:31
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Pero con ese "echo $expresion" se debe mostrar la expresion en pantalla. Mira ahí qué está mal. O si no postea aquí qué es lo que imprime esa variable.

Saludos
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 00:35.