我有一个从SOAP请求返回给我的PHP Object数组。我需要过滤除空气质量指数和AqiDateTime对象和值之外的所有其他数据。所有其他数据都不需要,实际上会产生一个问题,因为我需要将它放在一个数组中,我正在为图形插件提供数据。数组是插件的值。对不起,如果这是一个简单的问题,我是做网络项目的IT人员。
以下是从var_dump
中看到的对象示例object(stdClass)#2 (1) {
["CalculateSiteAQIByNaturalKeyJsonResult"]=>
object(stdClass)#3 (17) {
["AirQualityIndex"]=>
int(23)
["AqiDateTime"]=>
string(19) "2014-11-20T10:00:00"
["AqsUnitDescription"]=>
string(29) "Micrograms/cubic meter (25 C)"
["CategoryColorInteger"]=>
int(-16718848)
["CategoryDescription"]=>
string(4) "Good"
["FontColorInteger"]=>
int(-16777216)
["HealthAdvisory"]=>
string(4) "None"
["HealthEffects"]=>
string(4) "None"
["ParameterConcentration"]=>
float(24.67)
["ResponsibleAQIProgramID"]=>
string(36) "2d26a957-42f9-dd11-9b87-001e8c005352"
["ResponsibleAQIProgramName"]=>
string(4) "PM10"
["ResponsibleParameterID"]=>
string(36) "b8ab4bd9-89b0-4cdc-ba8a-3af9c038e5ba"
["ResponsibleParameterName"]=>
string(15) "PM10_(Standard)"
["SensitiveGroups"]=>
string(59) "People with respiratory disease are the group most at risk."
["SiteName"]=>
string(7) "BARSTOW"
["SourceSiteID"]=>
string(36) "3d104bd9-a9b7-e011-b9b9-444553544200"
["Unit"]=>
string(5) "UG/M3"
}
}
答案 0 :(得分:0)
$newArray = array(
'AirQualityIndex' => $obj->CalculateSiteAQIByNaturalKeyJsonResult->AirQualityIndex,
'AqiDateTime' => $obj->CalculateSiteAQIByNaturalKeyJsonResult->AqiDateTime);
其中$obj
是从SOAP调用返回的对象,$ newArray是要添加到插件的新数组。
->
是PHP中的对象属性访问语法。
在这种情况下,父对象上的CalculateSiteAQIByNaturalKeyJsonResult属性包含另一个对象,并且属性访问方法是链接的。例如
$obj->CalculateSiteAQIByNaturalKeyJsonResult->AirQualityIndex
给出空气质量指数值。
关联数组语法是访问属性的另一种方法。例如
$obj['CalculateSiteAQIByNaturalKeyJsonResult']['AirQualityIndex']
也将给出空气质量指数值。
arrray(KEY => VALUE)
包装器构建新数组。
答案 1 :(得分:0)
如果对象名称为$my_object
。您可以将所需信息存储在关联数组中,如下所示:
$air_array = array();
$air_array['AirQualityIndex'] = $my_object->AirQualityIndex;
$air_array['AqiDateTime'] = $my_object->AqiDateTime;
然后$air_array
会提供您想要的信息。
如果您需要将信息作为对象,可以将其转换为如下所示:
$air_object = (object) $air_array;