【发布时间】:2018-07-31 15:00:08
【问题描述】:
在 PHP 中,我了解到能够从一个对象中获取值就是这样:
$objResult->{"RESP"}->{"DATA"}->{"F_NAME"}
但是,对于以下数据,我如何才能获得名称“NO_1”? 既然是在一个数组里,我希望能把里面的数据提取出来,我在想先得到它的名字。
{
"SAMPLE": [
{
"NO_1": [
{
"RESULT": [
{
"NUMBER": 1,
"F_NAME": "JOHN",
"L_NAME": "SMITH"
},
{
"NUMBER": 2,
"F_NAME": "WILL",
"L_NAME": "JONES"
}
]
}
]
},
{
"NO_2": [
{
"RESULT": [
{
"NUMBER": 3,
"F_NAME": "MARY",
"L_NAME": "JANE"
},
{
"NUMBER": 4,
"F_NAME": "NEIL",
"L_NAME": "STRONG"
}
]
}
]
}
]
}
有什么想法吗?
【问题讨论】:
-
您不需要特别使用
{"STRING"}格式。你可以使用$objResult->SAMPLE[0]->NO_1 -
"先得到它的名字"...你的意思是你不知道属性的名字,所以你需要得到那个对象中所有属性名的列表,它将包括“No_1”属性?是这个意思吗?
-
您可以简单地遍历您的对象,如果这是您所要求的。例如,请参阅this answer。如果这不是您想要做的,您可能需要告诉我们您打算做什么的更多细节。
-
@ADyson - 是的。该对象将为您提供一个结构,但对于我提到的那个非常具体的点,您将获得一个可能会更改的名称。但不管它的名字如何,重要的是它的数据。
-
您知道包含该属性的对象在“sample”数组中的位置吗?例如,它是否总是数组的第一个元素?这将是找到它的好方法。