Foros del Web » Programando para Internet » PHP »

PHP OO eval(), array multidimensionales, error: Cannot use a scalar value

Estas en el tema de eval(), array multidimensionales, error: Cannot use a scalar value en el foro de PHP en Foros del Web. Hola a todos. Hace rato le estoy buscando la vuelta a esto y no la encuentro. Este es mi objetivo: lograr un array multidimensional, donde ...
  #1 (permalink)  
Antiguo 20/03/2011, 08:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años, 1 mes
Puntos: 2
eval(), array multidimensionales, error: Cannot use a scalar value

Hola a todos.
Hace rato le estoy buscando la vuelta a esto y no la encuentro.

Este es mi objetivo:
lograr un array multidimensional, donde las keys vienen desde otro array que voy recorriendo.

$input=array( '1', '1-2', '1-2-5', '1-2-7' );
foreach( $input as $elemento){
$string='$output['.str_replace('-','][',$elemento).']'.'=1;';
eval($string);
}

la salida debería ser un array multidimensional donde cada valor sería '1':
$output[1]
$output[1][2]
$output[1][2][5]
$output[1][2][7]

pero da el error:
Warning: Cannot use a scalar value as an array : eval()'d code on line 1
  #2 (permalink)  
Antiguo 20/03/2011, 08:37
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: eval(), array multidimensionales, error: Cannot use a scalar value

estoy viendo ahora, que el problema apunta hacia las claves en sí, que aparentemente eval no soporta agregar claves unas dentro de otras.
Es decir que si cambio mi input, el error desaparece. Si tuviese:
$input=array( '1-2', '3-2-5', '6-2-7' );
Esto no da error.
¿cómo solucionar esto????
  #3 (permalink)  
Antiguo 20/03/2011, 09:44
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: eval(), array multidimensionales, error: Cannot use a scalar value

uhh.. lamento haber informado mal el post, ya que estoy descubriendo que no tiene nada que ver con eval().
esto me da el mismo error:

$nada=array();

$nada[1]=1;
$nada[1][2]=1;
$nada[1][2][5]=1;
  #4 (permalink)  
Antiguo 20/03/2011, 15:20
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: eval(), array multidimensionales, error: Cannot use a scalar value

finalmente encuentro el motivo del mensaje de error,
y es que debo definir un elemento como array si luego he de agregarle elementos.

ej:
$array[1]=1 ;

si quiero luego agregar subdimensiones a la dimension 1, como:
$array[1][2]=1;

la asignación del primer paso es erronea, ya que debiera ser:
$array[1]=array();


Igualmente creo que el mensaje debería ser otro o más explicito, o incluso tal como trabaja php, ante cada asignación la variable o array debiera ser automáticamente redefinida, tal como trabaja php habitualmente.

bueno, eso es todo. perdón a los que perdieron tiempo junto conmigo.

Etiquetas: eval
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 21:05.