Foros del Web » Programando para Internet » PHP »

Problema con arrays en PHP

Estas en el tema de Problema con arrays en PHP en el foro de PHP en Foros del Web. Buenas! Tengo un problema con un programa en PHP que estoy tratando de escribir. Antes de nada, deciros que no tengo ninguna experiencia en PHP, ...
  #1 (permalink)  
Antiguo 11/04/2016, 05:57
 
Fecha de Ingreso: abril-2016
Ubicación: Asturias
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Problema con arrays en PHP

Buenas!

Tengo un problema con un programa en PHP que estoy tratando de escribir. Antes de nada, deciros que no tengo ninguna experiencia en PHP, soy MENOS que novato, y todo lo que hago es programación sencilla tras búsqueda previa en Google. Pero no dispongo de tiempo suficiente para estudiar como es debido, me aprietan las clavijas para que termine el programa ya mismo!!

¿Qué necesito? Muy simple: necesito formar dos arrays, uno con Horas y otro con Precios, de forma que pueda construir posteriormente un gráfico (con JpGraph) simplemente diciendo "los valores del array de Horas en el eje X, los valores del array de Precios en el eje Y".

Así es que tengo la variable $array_indicators, con datos JSON ya decodificados. Y soy capaz de conseguir los valores Horas y Precios guardados en $array_indicators. Y ahora quiero declarar un nuevo array ($array_hprice), que tenga un índice numérico secuencial, y dos valores para cada entrada: Hora y Precio.

Este es mi código:


$i = 0;
if($array_indicators)
{
foreach ($array_indicators as $valor)
{
// Getting HOUR in the format I need.
$hour = date ('H:i:s', strtotime ( $valor['datetime']) );
// Getting PRICE.
$price = $valor['value'];
// Building array.
$array_hprice[$i] = [$hour, $price];
// Testing result.
echo "Hour: ".$array_hprice[$i][0].", Price: ".$array_hprice[$i][1]."<br>\n";

$i++;
}
}


Probé este código en mi casa, con una instalación local de Apache y PHP 5.4, y funcionó perfectamente. Después de esto, pude crear el gráfico deseado utilizando estos dos arrays:


$array_hours = array_column($array_hprice, 0);
$array_prices = array_column($array_hprice, 1);


Ahora, volvamos al mundo real. Esta mañana coloqué mi programa PHP en mi servidor real, aquí en mi puesto de trabajo, con PHP 7.0 instalado... y no funciona!! Concretamente, ésta es la parte que no funciona:

$array_hprice[$i] = [$hour, $price];

Aparentemente, ahora (en PHP 7.0) no puedo declarar mi array de esta manera. Y realmente no tengo ni idea de por qué, y no sé cuál es la manera de hacer que funcione.

Así que estaría muy agradecido si alguien pudiera ayudarme. Seguramente mi código PHP es horrible, lo lamento! Pero no sé cuál es la mejor manera para conseguir lo que necesito! Obviamente, podría construir dos arrays separados: uno para las Horas, y el otro para los Precios; eso sería muy sencillo. Pero preferiría hacerlo de la forma que ya tenía pensada.

Entonces, pregunta final: ¿cuál es la mejor manera de conseguir lo que necesito hacer?

Muchas gracias y saludos!!
  #2 (permalink)  
Antiguo 11/04/2016, 06:48
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Problema con arrays en PHP

Puedes indicar que error es el que te da exactamente.
En teoría y a no ser que me lo haya pasado por alto, no se ha tocado nada en php en cuanto a la declaración de arrays.

Tienes definido date_default_timezone_set, ya que desde 5.1.0 creo es necesario para el uso de funciones de tiempo como date.
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 11/04/2016 a las 07:04
  #3 (permalink)  
Antiguo 11/04/2016, 07:10
 
Fecha de Ingreso: abril-2016
Ubicación: Asturias
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Respuesta: Problema con arrays en PHP

Gracias por contestar!

A mí también me extraña muchísimo, no he encontrado ningún lugar donde se mencione que algo haya cambiado en la declaración de arrays. Sólo sé que en local, con 5.4, funciona, y en servidor, con 7.0, no. ¿Podría ser un tema de configuración? Puede ser, pero no sé cómo averiguarlo. Como ya digo, soy novatísimo en esto. Por las pruebas que he hecho, sé que lo que falla es exactamente esa instrucción, pero el navegador no devuelve ningún error. Sencillamente no muestra nada en pantalla.

Si en lugar de guardar esos dos valores en cada elemento del array guardo sólo uno (Hora o Precio), funciona correctamente. Y las funcionalidades del Date también funcionan bien, comprobado.

¿De qué forma puedo depurar el código?
  #4 (permalink)  
Antiguo 11/04/2016, 07:30
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Problema con arrays en PHP

Habilita el reporte de errores con
Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors', 1);
  3. ?>
Al principio del script

Y comprueba a ver si te da algún error en concreto.
__________________
Unset($vida['malRollo']);
  #5 (permalink)  
Antiguo 11/04/2016, 11:07
 
Fecha de Ingreso: abril-2016
Ubicación: Asturias
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Respuesta: Problema con arrays en PHP

Mañana mismo lo compruebo y comento. Muchas gracias por la ayuda!
  #6 (permalink)  
Antiguo 12/04/2016, 02:52
 
Fecha de Ingreso: abril-2016
Ubicación: Asturias
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Respuesta: Problema con arrays en PHP

Cita:
Iniciado por xerifandtomas Ver Mensaje
Habilita el reporte de errores con
Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors', 1);
  3. ?>
Al principio del script

Y comprueba a ver si te da algún error en concreto.
Nada, no muestra ningún error. Navegador en blanco.

No tengo tiempo para más pruebas, así que tiraré por lo sencillo: declararé dos arrays, uno para las Horas y otro para los Precios. En realidad, tampoco quedará tan mal. Pero me fastidia tanto esto de no comprender cuál es el error, o por qué funciona en local con 5.4 y no en servidor con 7.0...

Muchas gracias por vuestro tiempo y saludos!
  #7 (permalink)  
Antiguo 12/04/2016, 09:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con arrays en PHP

Cita:
Nada, no muestra ningún error. Navegador en blanco.
Pues eso es síntoma de un error grave ¿ya revisaste en los logs de error por si acaso?

Te lo comento porque los arrays no han sufrido cambios drásticos, así que de la versión 5.4 a la 7.0 no deben haber diferencias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 13/04/2016, 05:21
 
Fecha de Ingreso: abril-2016
Ubicación: Asturias
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Respuesta: Problema con arrays en PHP

Soy tan novato que ni siquiera sé dónde están esos logs de error. Voy a buscarlo en Google. Lo de la depuración, por lo poco que he visto por ahí, de momento lo descarto. Estoy con mil cosas en mil lenguajes distintos, lo cual dificulta tiempos de aprendizaje y lo limita todo a un proceso prueba/error que no podría ser más inapropiado.

En cualquier caso, comentar que lo de los arrays ya lo tengo solucionado, declarando los dos arrays (con curiosidad incluida; podéis echarle un vistazo en este hilo de neogaf, yo soy el usuario baudelinog:

http://www.neogaf.com/forum/showthread.php?t=475808&page=320

). Mi gran problema ahora es el siguiente: necesito realizar tres lecturas en tres páginas distintas que contienen datos en JSON; abro la página con curl, decodifico el JSON, creo los arrays necesarios: esto lo hago una, dos, tres veces, para conseguir los datos de las tres páginas. A partir de esos arrays que he creado con los datos necesarios, quiero dibujar un gráfico con JpGraph... pues nanai. Si realizo el proceso con una sola lectura (abro la página con curl, decodifico el JSON, creo los arrays necesarios, lanzo gráfico), me funciona perfectamente. Pero si añado una segunda lectura (abro la página 1 con curl, decodifico el JSON 1, creo los arrays necesarios, abro la página 2 con curl, decodifico el JSON 2, creo los arrays necesarios, lanzo gráfico), a tomar por saco: no se muestra gráfico, y ni rastro del error!

Tendré que ojear eso de los ficheros de log con los errores.

¡Muchas gracias por la ayuda!

Etiquetas: arrays, variable
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 12:48.