繁体   English   中英

如何过滤PHP对象数组

[英]How to filter a php object array

我有一个从SOAP请求返回的PHP对象数组。 我需要过滤除空气质量指数和AqiDateTime对象和值以外的所有其他数据。 不需要所有其他数据,并且实际上会产生问题,因为我需要将其放入为图形插件提供的数组中。 数组是去插件的值。 抱歉,如果这是一个简单的问题,我是从事Web项目的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"
 }
}
$newArray = array(
     'AirQualityIndex' => $obj->CalculateSiteAQIByNaturalKeyJsonResult->AirQualityIndex,
     'AqiDateTime' => $obj->CalculateSiteAQIByNaturalKeyJsonResult->AqiDateTime);

其中$obj是从SOAP调用返回的对象,而$ newArray是要馈送到插件的新数组。

->是PHP中的对象属性访问语法。

在这种情况下,父对象上的CalculateSiteAQIByNaturalKeyJsonResult属性包含另一个对象,并且属性访问方法已链接在一起。 例如

$obj->CalculateSiteAQIByNaturalKeyJsonResult->AirQualityIndex

给出空气质量指数值。

关联数组语法是访问属性的另一种方法。 例如

$obj['CalculateSiteAQIByNaturalKeyJsonResult']['AirQualityIndex']

也将给出空气质量指数值。

arrray(KEY => VALUE)包装器将构建新数组。

请参阅: http//php.net/manual/en/sdo.sample.getset.php

如果对象名称为$my_object 您可以将所需的信息存储在这样的关联数组中:

$air_array = array();

$air_array['AirQualityIndex'] = $my_object->AirQualityIndex;
$air_array['AqiDateTime'] = $my_object->AqiDateTime;

然后$air_array具有您想要的信息。

如果您需要将信息作为对象,则可以将其强制转换为如下形式:

$air_object = (object) $air_array;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM