Php 从JSON中的数组数组获取元素
以这个JSON为例:我试图获取数组中的一个特定元素,数组数组中的一个元素。它还与这些数组中的其他元素具有相同的名称。这是我现在使用的PHP代码Php 从JSON中的数组数组获取元素,php,arrays,json,Php,Arrays,Json,以这个JSON为例:我试图获取数组中的一个特定元素,数组数组中的一个元素。它还与这些数组中的其他元素具有相同的名称。这是我现在使用的PHP代码 $data = file_get_contents('http://steamcommunity.com/id/berthiest/inventory/json/730/2/'); $json = json_decode($data); foreach ($json->rgDescriptions as $mydata) { forea
$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并测试此代码,您会注意到在“tags”
的数组中有许多“name”
元素。我想要的唯一“name”
元素是数组中的元素,它也包含“category\u name”:“Quality”
我无法选择从中获取“name”
的数组号,如下所示:
foreach ($json->rgDescriptions as $mydata)
{
echo $mydata->tags[3]->name;
}
因为在整个JSON中,“标记”
中有不同数量的数组
“标记”
示例:
我想要最后一个数组中的“name”:“Base Grade”
元素,因为它包含“category\u name”:“Quality”
那我该怎么做呢 您可以添加如下条件
foreach($mydata->tags as $tag) {
if(isset($tag->category_name) && $tag->category_name == 'Quality') {
echo $tag->name;
}
}
您可以添加如下条件
foreach($mydata->tags as $tag) {
if(isset($tag->category_name) && $tag->category_name == 'Quality') {
echo $tag->name;
}
}
您可以使用
isset
测试数据的存在性,以确保在回显您的姓名之前您的条件是真实的。类似于
foreach ($json->rgDescriptions as $mydata)
{
foreach ($mydata->tags as $tag) {
if (isset($tag->category_name) && $tag->category_name == 'Quality') {
echo $tag->name;
}
}
}
您可以使用
isset
测试数据的存在性,以确保在回显您的姓名之前您的条件是真实的。类似于
foreach ($json->rgDescriptions as $mydata)
{
foreach ($mydata->tags as $tag) {
if (isset($tag->category_name) && $tag->category_name == 'Quality') {
echo $tag->name;
}
}
}
这与JavaScript到底有什么关系?请在文章中提供一个最简单的数据示例。无论哪种方式,解决方案似乎都是简单地迭代所有
标记
,并检查其中是否有类别名称“:“质量”“
并且只使用这个。您解码了json,因此它不再是json了。它只是一个普通的旧PHP数据结构。仅仅因为它来自一个json字符串并不意味着它神奇的不同。这与JavaScript到底有什么关系?请在文章中提供一个最简单的数据示例。无论哪种方式,解决方案似乎都是简单地迭代所有标记
,并检查其中是否有类别名称“:“质量”“
并且只使用这个。您解码了json,因此它不再是json了。它只是一个普通的旧PHP数据结构。仅仅因为它来自一个json字符串并不意味着它神奇的不同。太好了,谢谢。我很快就会接受答案的。太好了,谢谢。如果条件允许,我很快就会接受这个答案。