2014-11-20 114 views
0

我有一個PHP Object數組正在從SOAP請求中返回給我。我需要過濾除空氣質量指數和AqiDateTime對象和值之外的所有其他數據。所有其他數據並不需要,實際上會產生一個問題,因爲我需要將它放在一個數組中,我正在爲圖形插件提供數據。該數組是值到插件。對不起,如果這是一個簡單的問題,我是做Web項目的IT人員。如何過濾php對象數組

這裏是對象的例子,因爲它是被從的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
$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

+0

這是導致我下了正確的道路。我現在得到一個stdClass錯誤。 – GuitarGeek86 2014-11-20 22:01:14

+0

PHP注意:未定義的屬性:stdClass :: $ AirQualityIndex – GuitarGeek86 2014-11-20 22:01:42

+0

#測試從AQI API獲取JSON中的所有結果 - 使用的值是aqiDateTime,將其設置爲PollTime變量。 $ result = $ client-> CalculateSiteAQIByNaturalKeyJson($ parameters); var_dump($ result); $ newArray = array('AirQualityIndex'=> $ result-> AirQualityIndex,'AqiDateTime'=> $ result-> AqiDateTime); – GuitarGeek86 2014-11-20 22:02:14

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;