我正在使用PHP为海洋潮汐编写一个小型Web应用程序。我在确定如何访问返回的数组(PHP转换为stdObject)时遇到了问题。
WSDL文件位于:http://opendap.co-ops.nos.noaa.gov/axis/webservices/highlowtidepred/wsdl/HighLowTidePred.wsdl
我的PHP代码是:
$wsdl = "http://opendap.co-ops.nos.noaa.gov/axis/webservices/highlowtidepred/wsdl/HighLowTidePred.wsdl";
$tides = new soapclient($wsdl);
$tideParams = array(
'stationId' => '8454000',
'beginDate' => '20110821 00:00',
'endDate' => '20110821 23:59',
'datum' => '0',
'unit' => '0',
'timeZone' => '0'
);
$tideRet = $tides->getHighLowTidePredictions($tideParams);
var_dump($tideRet);
此转储返回:
object(stdClass)#2 (1) {
["HighLowValues"]=>
object(stdClass)#3 (1) {
["item"]=>
object(stdClass)#4 (2) {
["data"]=>
array(4) {
[0]=>
object(stdClass)#5 (3) {
["time"]=>
string(5) "00:35"
["pred"]=>
float(3.8)
["type"]=>
string(1) "H"
}
[1]=>
object(stdClass)#6 (3) {
["time"]=>
string(5) "05:45"
["pred"]=>
float(0.7)
["type"]=>
string(1) "L"
}
[2]=>
object(stdClass)#7 (3) {
["time"]=>
string(5) "12:49"
["pred"]=>
float(4.2)
["type"]=>
string(1) "H"
}
[3]=>
object(stdClass)#8 (3) {
["time"]=>
string(5) "18:32"
["pred"]=>
float(1.3)
["type"]=>
string(1) "L"
}
}
["date"]=>
string(10) "08/21/2011"
}
}
}
我不知道如何阅读这个,我的谷歌搜索也没有多大帮助。任何帮助或指示都表示赞赏。
答案 0 :(得分:3)
这是一个动态的PHP对象。所有引用的项都是属性名,所以要进入数据数组:
$data = $tides->getHighLowTidePredictions($tideParams)
->HighLowValues
->item
->data;
然后,如果你想得到一个特定项目的时间属性,例如,你将寻址该数组索引并查找时间属性:
$data[0]->time;