Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2016, 05:57
baude
 
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!!