Recorrer Array a partir de Json
Publicado por Jean Carlo (4 intervenciones) el 21/12/2017 22:53:21
Hola a todos, vengo aquí con la esperanza de encontrar un poco de ayuda. De verdad que soy un novato en programación con escasos recursos económicos, jejeje.
Si no de pana que le pagaría a alguien que hiciera esto. Estoy tratando de implementar lo siguiente:
Hay un página web que me ofrece, lo que podríamos decir un archivo json, por lo menos, la estructura se ve así.
El resultado pinta más o menos así:
{"COP": {"avg_12h": "48212401.45", "volume_btc": "18.15840927", "avg_24h": "49211003.59", "avg_1h": "46741995.81", "rates": {"last": "47999901.70"}, "avg_6h": "48170867.80"}, "USD": {"avg_12h": "17540.15", "volume_btc": "114.07469137", "avg_24h": "17602.80", "avg_1h": "16805.73", "rates": {"last": "22684.48"}, "avg_6h": "17375.62"}, ...
Y así sigue con todas las divisas, estoy accesando con ella través de
file_get_contents("https://localbitcoins.com//bitcoinaverage/ticker-all-currencies/");
Perfecto, no hay problema con eso.
Luego, como asumo que estoy frente a un json,
Decodifico y el código ya va así:
$data = file_get_contents("https://localbitcoins.com//bitcoinaverage/ticker-all-currencies/");
//Decodificamos para imprimir
$decode = json_decode($data, true);
Cuando imprimo con var_dump, me arroja un array (72)
Y cada uno de los esos 72 elementos son Objetos, como se puede observar en el ejemplo que copie arriba, para desglosar uno:
'COP' =>
array (size=6)
'avg_12h' => string '45661962.69' (length=11)
'volume_btc' => string '19.98471294' (length=11)
'avg_24h' => string '47012071.97' (length=11)
'avg_1h' => string '44092422.38' (length=11)
'rates' =>
array (size=1)
'last' => string '42999999.91' (length=11)
'avg_6h' => string '45291704.86' (length=11)
Y como ven, tiene un array anidado, estos datos se actualizan dinámicamente, como pueden ver son los datos de localbitcoins.
¿Qué quiero hacer?
Algo más o menos así:
Peso Colombiano (COP)
Promedio 1H: "avg_1h"
Promedio 6H: "avg_6h"
Promedio 12H: "avg_12h"
Promedio 24H: "avg_24h"
Volumento BTC: "volume_btc"
Así con cada divisa y que me imprima el valor actual cada vez que alguien ingrese a ese post de wordpress. Yo sé que puedo acceder a cada objeto, de hecho realicé un
var_dump($decode{'VEF'});
Y esto es lo que me aparece:
/home/academi6/public_html/probando.php:14:
array (size=6)
'avg_12h' => string '1631682573.63' (length=13)
'volume_btc' => string '28.66136049' (length=11)
'avg_24h' => string '1685806820.41' (length=13)
'avg_1h' => string '1574019114.26' (length=13)
'rates' =>
array (size=1)
'last' => string '1534100221.96' (length=13)
'avg_6h' => string '1584920601.81' (length=13)
Pero si hago echo $decode{'VEF'};
Me imprime 'Array', y entiendo porque la variable es un Array.
Mi pregunta, es ¿alguién conocerá cuál bucle es más conveniente para llenar esos datos como lo indique arriba? Y si me pueden dar un ejemplo mejor, porque llevo casi 1 semana para llegar hasta aquí. Agradecido de antemano.
Pueden ver el archivo en acción en https://academiaaguilasdoradas.com.ve/probando.php
No sea que cuando alguien lea esto ya lo haya resuelto.
Si no de pana que le pagaría a alguien que hiciera esto. Estoy tratando de implementar lo siguiente:
Hay un página web que me ofrece, lo que podríamos decir un archivo json, por lo menos, la estructura se ve así.
El resultado pinta más o menos así:
{"COP": {"avg_12h": "48212401.45", "volume_btc": "18.15840927", "avg_24h": "49211003.59", "avg_1h": "46741995.81", "rates": {"last": "47999901.70"}, "avg_6h": "48170867.80"}, "USD": {"avg_12h": "17540.15", "volume_btc": "114.07469137", "avg_24h": "17602.80", "avg_1h": "16805.73", "rates": {"last": "22684.48"}, "avg_6h": "17375.62"}, ...
Y así sigue con todas las divisas, estoy accesando con ella través de
file_get_contents("https://localbitcoins.com//bitcoinaverage/ticker-all-currencies/");
Perfecto, no hay problema con eso.
Luego, como asumo que estoy frente a un json,
Decodifico y el código ya va así:
$data = file_get_contents("https://localbitcoins.com//bitcoinaverage/ticker-all-currencies/");
//Decodificamos para imprimir
$decode = json_decode($data, true);
Cuando imprimo con var_dump, me arroja un array (72)
Y cada uno de los esos 72 elementos son Objetos, como se puede observar en el ejemplo que copie arriba, para desglosar uno:
'COP' =>
array (size=6)
'avg_12h' => string '45661962.69' (length=11)
'volume_btc' => string '19.98471294' (length=11)
'avg_24h' => string '47012071.97' (length=11)
'avg_1h' => string '44092422.38' (length=11)
'rates' =>
array (size=1)
'last' => string '42999999.91' (length=11)
'avg_6h' => string '45291704.86' (length=11)
Y como ven, tiene un array anidado, estos datos se actualizan dinámicamente, como pueden ver son los datos de localbitcoins.
¿Qué quiero hacer?
Algo más o menos así:
Peso Colombiano (COP)
Promedio 1H: "avg_1h"
Promedio 6H: "avg_6h"
Promedio 12H: "avg_12h"
Promedio 24H: "avg_24h"
Volumento BTC: "volume_btc"
Así con cada divisa y que me imprima el valor actual cada vez que alguien ingrese a ese post de wordpress. Yo sé que puedo acceder a cada objeto, de hecho realicé un
var_dump($decode{'VEF'});
Y esto es lo que me aparece:
/home/academi6/public_html/probando.php:14:
array (size=6)
'avg_12h' => string '1631682573.63' (length=13)
'volume_btc' => string '28.66136049' (length=11)
'avg_24h' => string '1685806820.41' (length=13)
'avg_1h' => string '1574019114.26' (length=13)
'rates' =>
array (size=1)
'last' => string '1534100221.96' (length=13)
'avg_6h' => string '1584920601.81' (length=13)
Pero si hago echo $decode{'VEF'};
Me imprime 'Array', y entiendo porque la variable es un Array.
Mi pregunta, es ¿alguién conocerá cuál bucle es más conveniente para llenar esos datos como lo indique arriba? Y si me pueden dar un ejemplo mejor, porque llevo casi 1 semana para llegar hasta aquí. Agradecido de antemano.
Pueden ver el archivo en acción en https://academiaaguilasdoradas.com.ve/probando.php
No sea que cuando alguien lea esto ya lo haya resuelto.
Valora esta pregunta
0