如何使用file_get_contents从数组中获取特定字段

时间:2014-02-06 07:52:18

标签: php arrays json object

我想获取播放器字段:

例如id,name,tag,plat etc

我有这种类型的数据:

stdClass Object
(
    [player] => stdClass Object
        (
            [id] => 179203896
            [game] => bf4
            [plat] => pc
            [name] => HeLLTiMe
            [tag] => DK
            [dateCheck] => 1391437377733
            [dateUpdate] => 1391437377733
            [dateCreate] => 1386696304438
            [lastDay] => 20140117
            [country] => 
            [countryName] => 
            [rank] => stdClass Object
                (
                    [nr] => 73
                    [imgLarge] => bf4/ranks/r73.png
                    [img] => r73
                    [name] => Chief Warrant Officer Five III
                    [needed] => 4920000
                    [next] => stdClass Object
                        (
                            [nr] => 74
                            [img] => r74
                            [name] => Chief Warrant Officer Five IV
                            [needed] => 5030000
                            [curr] => 5022060
                            [relNeeded] => 110000
                            [relCurr] => 102060
                            [relProg] => 92.781818181818
                        )

                )

            [score] => 5025100
            [timePlayed] => 862027
            [uId] => 2832659368608119092
            [uName] => HeLLTiMe
            [uGava] => 0b8b00021ebfb32414e5a6051c2c9a40
            [udCreate] => 1328606863000
            [blPlayer] => http://battlelog.battlefield.com/bf4/soldier/HeLLTiMe/stats/179203896/pc/
            [blUser] => http://battlelog.battlefield.com/bf4/user/HeLLTiMe/
            [editable] => 
            [viewable] => 1
            [adminable] => 
            [linked] => 
        )

    [stats] => stdClass Object
        (
            [reset] => stdClass Object
                (
                    [lastReset] => 0
                    [score] => 0
                    [timePlayed] => 0
                    [timePlayedSinceLastReset] => 0
                    [kills] => 0
                    [deaths] => 0
                    [shotsFired] => 0
                    [shotsHit] => 0
                    [numLosses] => 0
                    [numWins] => 0
                )

如何获取此数据?

这是我的代码:

<?php
$url = "http://api.bf4stats.com/api/playerInfo?plat=pc&name=HeLLTiMe";
$json = file_get_contents($url);

$data = json_decode($json);
echo "<pre>";
print_r($data);
?> 

3 个答案:

答案 0 :(得分:2)

得到你应该这样做的名字:

echo $data->player->name;

你需要这个,因为你有一个stdClass Object

你也可以将out更改为一个数组,你必须改变它:

$data = json_decode($json);

到此:

$data = json_decode($json, true);

当你制作这个chagne时,你可以得到这个值:

echo $data['player']['name'];

修改

下面你可以看到这个例子,这对我来说没有错误。

$url = "http://api.bf4stats.com/api/playerInfo?plat=pc&name=HeLLTiMe";
$json = file_get_contents($url);

echo 'Using stdClass Object option<br>';
$data = json_decode($json);
echo $data->player->name;

echo '<br><br>Using Array option<br>';
$data = json_decode($json, true);
echo $data['player']['name'];

exit;

答案 1 :(得分:0)

$result = array();

$result['name'] = $data->Player->name

var_dump($result);

答案 2 :(得分:0)

不确定通过获取数据获取它是什么意思,但如果你问如何访问这些字段,你可以这样做。

print_r($data->player->name);