繁体   English   中英

PHP提取用户名等于的JSON字符串的特定部分

[英]PHP Extracting a certain part of JSON string where username equals

我想知道如何仅从JSON字符串中提取特定部分:

[
        {
                "ID": "132",
                "countrycode": "DE",
                "USERNAME": "CRC Titan2000",
                "Nickname": "^7[6S] ^1Titan",
                "Money": "550111",
                "Distance": "105692714",
                "Trip": "370839",
                "Bonus": "223",
                "Last Car": "RB4",
                "Last Position": "The Hills",
                "Server": "^7One"
        },
        {
                "ID": "1634",
                "countrycode": "ES",
                "USERNAME": "lobocop",
                "Nickname": "^4Leo ^1Messi",
                "Money": "12816",
                "Distance": "17091463",
                "Trip": "25682",
                "Bonus": "29",
                "Last Car": "MRT",
                "Last Position": "Bridge East",
                "Server": "^7One"
        },
        {
                "ID": "4240",
                "countrycode": "GB",
                "USERNAME": "Smacky",
                "Nickname": "^7^d^6o^7^s",
                "Money": "-532",
                "Distance": "1987579",
                "Trip": "7738",
                "Bonus": "51",
                "Last Car": "RB4",
                "Last Position": "The Hills",
                "Server": "^7One"
        },
        {
                "ID": "5467",
                "countrycode": "TR",
                "USERNAME": "excaTR",
                "Nickname": "^1Furkan^7Tr",
                "Money": "7363",
                "Distance": "17064283",
                "Trip": "15747",
                "Bonus": "31",
                "Last Car": "RB4",
                "Last Position": "Bridge East",
                "Server": "^7One"
        }
]

我只想提取“ USERNAME”摘要的“最后位置”,但忽略其他所有内容。 有点像MySQL查询,我想在其中回显WHERE username ='excaTR'的最后位置,但要显示PHP和JSON。

这是我尝试过的代码,但是没有用

$json_stats = file_get_contents('<JSON string here>');
$stats_data = json_decode($json_stats, true);

foreach ($stats_data as $_SESSION['username'] => $location){
    echo $location['Last Position'];
}

您没有使用应有的foreach 看一下您的JSON,您有一个对象数组。

因此,您必须遍历数组,并检查对象值。

顺便说一句,在我的答案中,我使用json_decode( ,false)将结果强制为多维数组,仅json_decode( ,false)口味问题。

$json_stats = file_get_contents('<JSON string here>');
$stats_data = json_decode($json_stats, false);

foreach ($stats_data as $array) {
  if ($array['USERNAME'] == 'excaTR') {
    echo $array['Last Position'];
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM