Skip to content
Advertisement

PHP data array coding [closed]

So I am trying to pull data from a website api, they didn’t have any documentation for what I am trying to do..

So what I am trying to pull is the 4JNET Price. “price”:”0.000000011816″

What Iv’e tried:

<?php
//4JNET
$content = file_get_contents('https://www.lbank.site/request/tick? 
symbol=alts');

preg_match('#{"symbol":"4jnet/usdt"(.*)"usd"#', $content, $match);
$Price = $match[1];

echo $Price;
?>

Here is some sample data…

{“symbol”:”4jnet/usdt”,”vol”:”5078919159375.1975″,”amount”:”58729.3647″,”c”:{“price”:”0.000000011816″,”usd”:”0.00″,”cny”:”0.00″},”toCny”:”6.36″,”change”:”-5.98″,”h”:{“price”:”0.000000015042″,”usd”:”0.00″,”cny”:”0.00″},”l”:{“price”:”0.000000010099″,”usd”:”0.00″,”cny”:”0.00″},”dir”:”buy”,”toUsd”:”1.00″,”platform”:”LBANK”,”timestamp”:1639627875492},{“symbol”:”doe/usdt”,”vol”:”6164668.8295″,”amount”:”323916.8607″,”c”:{“price”:”0.0606″,”usd”:”0.06060″,”cny”:”0.38589″},”toCny”:”6.36790″,”change”:”33.48″,”h”:{“price”:”0.0625″,”usd”:”0.06250″,”cny”:”0.39799″},”l”:{“price”:”0.0433″,”usd”:”0.04330″,”cny”:”0.27573″},”dir”:”buy”,”toUsd”:”1.00000″,”platform”:”LBANK”,”timestamp”:1639627874171},{“symbol”:”dydx/usdt”,”vol”:”819823.0898″,”amount”:”6853463.1339″,”c”:{“price”:”8.4729″,”usd”:”8.47290″,”cny”:”53.95457″},”toCny”:”6.36790″,”change”:”4.33″,”h”:{“price”:”8.8255″,”usd”:”8.82550″,”cny”:”56.19990″},”l”:{“price”:”7.7505″,”usd”:”7.75050″,”cny”:”49.35440″},”dir”:”sell”,”toUsd”:”1.00000″,”platform”:”LBANK”,”timestamp”:1639627873783},{“symbol”:”lid/eth”,”vol”:”0.0000″,”amount”:”0.0000″,”c”:{“price”:”0.00889996″,”usd”:”35.74499″,”cny”:”227.62057″},”toCny”:”25575.46044″,”change”:”0.00″,”h”:{“price”:”0.00889996″,”usd”:”35.74499″,”cny”:”227.62057″},”l”:{“price”:”0.00889996″,”usd”:”35.74499″,”cny”:”227.62057″},”dir”:”buy”,”toUsd”:”4016.31000″,”platform”:”LBANK”,”timestamp”:1639627875679},{“symbol”:”lunapad/usdt”,”vol”:”16117157.1174″,”amount”:”453319.2567″,”c”:{“price”:”0.0362″,”usd”:”0.03620″,”cny”:”0.23051″},”toCny”:”6.36790″,”change”:”46.56″,”h”:{“price”:”0.0390″,”usd”:”0.03900″,”cny”:”0.24834″},”l”:{“price”:”0.0219″,”usd”:”0.02190″,”cny”:”0.13945″},”dir”:”sell”,”toUsd”:”1.00000″,”platform”:”LBANK”,”timestamp”:1639627874066},{“symbol”:”tlm/usdt”,”vol”:”4631316.5073″,”amount”:”1003428.9213″,”c”:{“price”:”0.2237″,”usd”:”0.22370″,”cny”:”1.42449″},”toCny”:”6.36790″,”change”:”4.78″,”h”:{“price”:”0.2296″,”usd”:”0.22960″,”cny”:”1.46206″},”l”:{“price”:”0.2006″,”usd”:”0.20060″,”cny”:”1.27740″},”dir”:”buy”,”toUsd”:”1.00000″,”platform”:”LBANK”,”timestamp”:1639627875510},

Advertisement

Answer

Try this code:

//4JNET
$content = file_get_contents('https://www.lbank.site/request/tick?symbol=alts');

// convert the received json to object in this case
$jsontoobject = json_decode($content);

$result = null;
// walk the array [data] inside the jsontoobject
foreach ($jsontoobject->data as $num => $object) {
    // if matches the desired symbol
    if ($object->symbol == '4jnet/usdt') {
        // asign it to a var
        $result = $object;
        // finish the walk
        break;
    }
}

// show what that symbol object contains    
print_r($result);

It will output the matched object like this:

stdClass Object
(
    [symbol] => 4jnet/usdt
    [vol] => 5124704593591.1719
    [amount] => 59424.1760
    [c] => stdClass Object
        (
            [price] => 0.000000012819
            [usd] => 0.00
            [cny] => 0.00
        )

    [toCny] => 6.36
    [change] => 9.53
    [h] => stdClass Object
        (
            [price] => 0.000000015042
            [usd] => 0.00
            [cny] => 0.00
        )

    [l] => stdClass Object
        (
            [price] => 0.000000010099
            [usd] => 0.00
            [cny] => 0.00
        )

    [dir] => buy
    [toUsd] => 1.00
    [platform] => LBANK
    [timestamp] => 1639634136197
)

And then you can access to any value like this:

// access to specific value in the object
echo $result->c->price;

Output:

0.000000012088
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement