我有一个如下所示的 JSON 文件...
{
"success": true,
"num_items": 6104,
"items": [
{
"market_name": "\u2605 Bayonet",
"market_hash_name": "\u2605 Bayonet",
"icon_url": "\/\/steamcommunity-a.akamaihd.net\/economy\/image\/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQh5hlcX0nvUOGsx8DdQBJjIAVHubSaKQZ53P3NZXMXvYmykdLSxqWkZ7-HkjMIvpIj3u2Y84733gzh_RU_MG_zIYLEdQ45fxiOrdJh0ExF",
"name_color": "8650AC",
"quality_color": "EB4B4B"
},
{
"market_name": "\u2605 Bayonet | Blue Steel (Battle-Scarred)",
"market_hash_name": "\u2605 Bayonet | Blue Steel (Battle-Scarred)",
"icon_url": "\/\/steamcommunity-a.akamaihd.net\/economy\/image\/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpotLu8JAllx8zJYAJA4MmzkL-DkvbiKvXTkzNVucNzj7mX9tWk21Xkr0JvN231JYGcdA47NF3Y81Hoxebs1sftot2XnmcyW1u0",
"name_color": "8650AC",
"quality_color": "EB4B4B"
},
// etc ...
]
我有一堆所谓的元素,我想通过仅知道market_hash_name
来获得quality_color
。我如何使用 PHP 来做到这一点?
最佳答案
您需要执行以下操作:
- 解码您的 JSON 文件 json_decode 。这将允许您在关联数组中访问您的 JSON。
- 使用 for 循环或 foreach 循环遍历“items”数组中的每个数组,将 market_hash_name 与用户的(?)输入进行比较,然后获取该数组的quality_color 值。
编辑:您对答案做了很好的尝试,所以这是我对您的问题的有效解决方案。从您向我展示的一小段代码来看,问题在于您没有将 json_decode 设为关联数组,而是将其视为一个数组来调用。而不是 json_decode($JSONString)
它应该是 json_decode($JSONString, true)
<?php
$JSONin = '{
"success": true,
"num_items": 6104,
"items": [
{
"market_name": "★ Bayonet",
"market_hash_name": "★ Bayonet",
"icon_url": "//steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQh5hlcX0nvUOGsx8DdQBJjIAVHubSaKQZ53P3NZXMXvYmykdLSxqWkZ7-HkjMIvpIj3u2Y84733gzh_RU_MG_zIYLEdQ45fxiOrdJh0ExF",
"name_color": "8650AC",
"quality_color": "EB4B4B"
},
{
"market_name": "★ Bayonet | Blue Steel (Battle-Scarred)",
"market_hash_name": "★ Bayonet | Blue Steel (Battle-Scarred)",
"icon_url": "//steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpotLu8JAllx8zJYAJA4MmzkL-DkvbiKvXTkzNVucNzj7mX9tWk21Xkr0JvN231JYGcdA47NF3Y81Hoxebs1sftot2XnmcyW1u0",
"name_color": "8650AC",
"quality_color": "EB4B4B"
}
]
}';
$JSON = json_decode($JSONin, true);
$searched_market_hash_name = "★ Bayonet | Blue Steel (Battle-Scarred)";
foreach ($JSON['items'] as $item)
{
if ($searched_market_hash_name == $item['market_hash_name'])
{
echo "found! quality color is " . $item['quality_color'];
}
}
关于javascript - 使用 PHP 获取 JSON 中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44640480/