Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error Undefined offset: 1

Estas en el tema de Error Undefined offset: 1 en el foro de PHP en Foros del Web. Hola amigos, en una consulta a una base de datos obtengo esta esta cadena !P0D +009390 -000972 +000000 +1419 +0497 C07A8* y tengo que obtener ...
  #1 (permalink)  
Antiguo 12/02/2015, 12:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Error Undefined offset: 1

Hola amigos, en una consulta a una base de datos obtengo esta esta cadena !P0D +009390 -000972 +000000 +1419 +0497 C07A8* y tengo que obtener -00097

Para lograr mi cometido realice lo siguiente:

Código PHP:
Ver original
  1. $filas = DB::select("SELECT * FROM eStorerDB.data WHERE station_id = 46");

Cita:
array(18404) { [0]=> object(stdClass)#414 (4) { ["id"]=> string(6) "165219" ["station_id"]=> string(2) "46" ["timestamp"]=> string(19) "2014-10-02 15:23:25" ["raw_record"]=> string(47) "!P0D +009390 -000972 +000000 +1419 +0497 C07A8*" }
Código PHP:
Ver original
  1. foreach($filas as $fila) {
  2. $arRaw = explode('+',$fila->raw_record);


Cita:
array(5) { [0]=> string(5) "!P0D " [1]=> string(15) "009390 -000972 " [2]=> string(7) "000000 " [3]=> string(5) "1419 " [4]=> string(11) "0497 C07A8*" }
Código PHP:
Ver original
  1. $val = trim($arRaw[1]);


Cita:
string(14) "009390 -000972"
Código PHP:
Ver original
  1. $val2 = explode(' ',$val);

array(2) { [0]=> string(6) "009390" [1]=> string(7) "-000972" }

Código PHP:
Ver original
  1. $ydata[] = trim($val2[1])*0.01;

array(1) { [0]=> float(-9.72) }

Código PHP:
Ver original
  1. }
Obtengo este error
Undefined offset: 1
[/HIGHLIGHT]

a que se debe?
  #2 (permalink)  
Antiguo 12/02/2015, 13:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error Undefined offset: 1

No hay ningún índice 1, mira bien:
Cita:
array(1) { [0]=> float(-9.72) }
Ahí te dice que el array tiene sólo 1 elemento, y obvio, los índices comienzan en 0.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/02/2015, 13:18
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Error Undefined offset: 1

hola, el valor que necesito es el de la posicion [1] de $val2 osea

Cita:
array(2) { [0]=> string(6) "009390" [1]=> string(7) "-000972" }
Código PHP:
Ver original
  1. var_dump(count($val2));
  2. // y obtengo int(2)

estoy mal?

Última edición por Montes28; 12/02/2015 a las 14:20
  #4 (permalink)  
Antiguo 12/02/2015, 15:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error Undefined offset: 1

En ese arreglo sí hay dos elementos, ¿por qué no muestras el código real para dejar de ir adivinando?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 12/02/2015, 16:19
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Error Undefined offset: 1

estoy mostrando el codigo real, lo solucione asi

Código PHP:
Ver original
  1. $filas = DB::select("SELECT * FROM eStorerDB.data WHERE station_id = 46");
  2.  
  3. $xdata = array();
  4.              $zdata = array();
  5.              $edata = array();
  6.              $ndata = array();
  7.  
  8.              foreach($filas as $fila) {
  9.                   $xdata[] =date('Y-m-d',strtotime($fila->timestamp));
  10.                   $va = str_replace(array("+"),"",$fila->raw_record);
  11.                   list($var1,$var2,$var3,$var4,$var5,$var6,$var7) = explode(" ", $va);
  12.                   $zdata[] = doubleval($var5)*4*0.000001;
  13.                   $edata[] = $var3*0.01;
  14.                   $ndata[] = $var2*0.01;
  15. }

Etiquetas: offset, select, undefined
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 11:06.