使用此JSON作为示例:http://steamcommunity.com/id/berthiest/inventory/json/730/2/我正在尝试在数组数组中获取数组中的特定元素。它也与这些数组中的其他元素具有相同的名称。这是我现在使用的PHP代码。
$data = file_get_contents('http://steamcommunity.com/id/berthiest/inventory/json/730/2/');
$json = json_decode($data);
foreach ($json->rgDescriptions as $mydata)
{
foreach($mydata->tags as $tag) {
echo $tag->name;
}
}
如您所见,我正在"tags"
中搜索"name"
元素中的数组。如果您查看JSON并测试此代码,您会注意到"name"
数组中有许多"tags"
个元素。我想要的唯一“name"
元素是数组中包含"category_name":"Quality"
的元素。
我无法选择数组编号来获取"name"
,如下所示:
foreach ($json->rgDescriptions as $mydata)
{
echo $mydata->tags[3]->name;
}
因为整个JSON中"tags"
中的数组数量不同。
"tags"
的示例:
"tags":[{"internal_name":"CSGO_Tool_WeaponCase_KeyTag","name":"Key","category":"Type","category_name":"Type"},{"internal_name":"normal","name":"Normal","category":"Quality","category_name":"Category"},{"internal_name":"Rarity_Common","name":"Base Grade","category":"Rarity","color":"b0c3d9","category_name":"Quality"}]
我希望最后一个数组中的"name":"Base Grade"
元素,因为它包含"category_name":"Quality"
。
那我该怎么做呢?
答案 0 :(得分:4)
您可以添加以下条件
foreach($mydata->tags as $tag) {
if(isset($tag->category_name) && $tag->category_name == 'Quality') {
echo $tag->name;
}
}
答案 1 :(得分:1)
您可以使用isset
来测试数据是否存在,以确保您的条件为真,然后才能回显您的姓名。有点像...
foreach ($json->rgDescriptions as $mydata)
{
foreach ($mydata->tags as $tag) {
if (isset($tag->category_name) && $tag->category_name == 'Quality') {
echo $tag->name;
}
}
}