在PHP中从JSON获取数据

在PHP中从JSON获取数据,php,arrays,json,Php,Arrays,Json,我正在尝试从这个JSON格式中获取数据,以便能够在屏幕上显示问题是我不确定如何才能做到这一点,因为我尝试了多种方法,例如: $stats = json_decode($result); // var_dump($stats); echo $stats->elo; 由于[]的原因,我不确定如何获取数据,因为我以前从未使用过这个。如下图所示,这是我需要进入的一小段数据 [{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","p

我正在尝试从这个JSON格式中获取数据,以便能够在屏幕上显示问题是我不确定如何才能做到这一点,因为我尝试了多种方法,例如:

$stats = json_decode($result);
// var_dump($stats);
echo $stats->elo;
由于[]的原因,我不确定如何获取数据,因为我以前从未使用过这个。如下图所示,这是我需要进入的一小段数据

[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]

提前感谢

不知道我是否正确理解了您的意思(您想获取数组中的数据吗?), 但是试试看


不知道我是否正确理解了您(您想获取数组中的数据吗?), 但是试试看


处理JSON时有一个简单的经验法则。首先,只需解码它并使用
print\r()
打印它,这样您就可以很容易地看到它的结构

$s = '[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]';

$stats = json_decode($s);

print_r($stats);
在这种情况下,它将向您展示

Array
(
    [0] => stdClass Object
        (
            [_id] => stdClass Object
                (
                    [championId] => 51
                    [role] => DUO_CARRY
                )
            [elo] => BRONZE
            [patch] => 7.11
            [championId] => 51
            [positions] => stdClass Object
                (
                    [deaths] => 3
                    [winRates] => 6
                    [minionsKilled] => 2
                    [previousOverallPerformanceScore] => 6
                )
        )
)
现在您知道了,在本例中,有一个数组只包含一个对象

所以要显示elo,你可以做一个简单的

echo $stats[0]->elo;    // BRONZE
但由于它是一个对象数组,所以在某些情况下,最好假设有多个stat,这样您就可以像这样在foreach循环中处理它

foreach ($stats as $stat) {
    echo $stat->elo;
}

处理JSON时有一个简单的经验法则。首先,只需解码它并使用
print\r()
打印它,这样您就可以很容易地看到它的结构

$s = '[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]';

$stats = json_decode($s);

print_r($stats);
在这种情况下,它将向您展示

Array
(
    [0] => stdClass Object
        (
            [_id] => stdClass Object
                (
                    [championId] => 51
                    [role] => DUO_CARRY
                )
            [elo] => BRONZE
            [patch] => 7.11
            [championId] => 51
            [positions] => stdClass Object
                (
                    [deaths] => 3
                    [winRates] => 6
                    [minionsKilled] => 2
                    [previousOverallPerformanceScore] => 6
                )
        )
)
现在您知道了,在本例中,有一个数组只包含一个对象

所以要显示elo,你可以做一个简单的

echo $stats[0]->elo;    // BRONZE
但由于它是一个对象数组,所以在某些情况下,最好假设有多个stat,这样您就可以像这样在foreach循环中处理它

foreach ($stats as $stat) {
    echo $stat->elo;
}

如果在该json中获得多个数组数据,请按如下所示使用foreach

foreach ($stats as $row) {
    echo $row->elo;
}

如果只想获得第一条记录,请使用
$stats[0]->elo

如果在该json中获得多个数组数据,请按如下方式使用foreach

foreach ($stats as $row) {
    echo $row->elo;
}

如果只想获得第一条记录,请使用
$stats[0]->elo

您的json_解码输出是一个对象数组。因此,您必须首先使用index访问数组元素,然后使用
$array[0]->elo访问object的属性


json_decode的输出是一个对象数组。因此,您必须首先使用index访问数组元素,然后使用
$array[0]->elo访问object的属性


如果您想获得关联数组,应该使用
$stats=json\u decode($result,true);
var_dump($stats)然后您将获得

array (size=1)
  0 => 
    array (size=5)
      '_id' => 
        array (size=2)
          'championId' => int 51
          'role' => string 'DUO_CARRY' (length=9)
      'elo' => string 'BRONZE' (length=6)
      'patch' => string '7.11' (length=4)
      'championId' => int 51
      'positions' => 
        array (size=4)
          'deaths' => int 3
          'winRates' => int 6
          'minionsKilled' => int 2
          'previousOverallPerformanceScore' => int 6

要获取元素,请通过
$stats[0]
或循环获取数组的第一个键。例如,
$stats[0]['elo']

如果要获得关联数组,应使用
$stats=json\u decode($result,true);
var_dump($stats)然后您将获得

array (size=1)
  0 => 
    array (size=5)
      '_id' => 
        array (size=2)
          'championId' => int 51
          'role' => string 'DUO_CARRY' (length=9)
      'elo' => string 'BRONZE' (length=6)
      'patch' => string '7.11' (length=4)
      'championId' => int 51
      'positions' => 
        array (size=4)
          'deaths' => int 3
          'winRates' => int 6
          'minionsKilled' => int 2
          'previousOverallPerformanceScore' => int 6

要获取元素,请通过
$stats[0]
或循环获取数组的第一个键。例如,
$stats[0]['elo']

您必须使用foreach从最基本的数组中获取该值-
$stats[0]->elo。感谢的可能副本已经寻找了很长时间,但找不到类似的东西。您必须使用foreach从最基本的数组中获取该值-
$stats[0]->elo。可能重复的感谢一直在寻找,但找不到类似的东西