PHP取Webservice資料返回數組維度不正確
我用nusoap外掛程式讀取webservice,但是出現了問題。
當返回的數組大於1組時,返回正確,但是當數組資料只有1組是,維度就發生了變化,導致count擷取數組長度就不正確。
代碼如下:
當有2組資料時,結果如下:
PHP code
Array ( [getTrafficResult] => Array ( [trafficWay] => Array ( [0] => Array ( [Station] => 4828,4830,4868 [Line] => 2908,2906 [Price] => 10.5 [Alltime] => 10 [ChangeCount] => 1 [Type] => 2,2 [Station_name] => 尖沙咀地鐵站#金鐘地鐵站#銅鑼灣地鐵站 [Line_name] => 荃灣線,港島線 [Allstation] => 0|灣仔地鐵站 [Stationcount] => 1,2 [Direction] => 中環地鐵站#柴灣地鐵站 [Time] => 5,5 [Distance] => 2172,2017 [Lineremark] => 0#0 [Addstartinfo] => 0 [Addendinfo] => 0 ) [1] => Array ( [Station] => 2655,2847 [Line] => 1084 [Price] => 9.3 [Alltime] => 30 [ChangeCount] => 0 [Type] => 1 [Station_name] => 北京道,廣東道#維多利亞公園,告士打道 [Line_name] => 新巴110 [Allstation] => 新世界中心,梳士巴利道#加連威老道,漆鹹道南#香港科學館,漆鹹道南#牲口站,漆鹹道北#海底隧道收費廣場 [Stationcount] => 6 [Direction] => 筲箕灣 [Time] => 20 [Distance] => 2552 [Lineremark] => 0 [Addstartinfo] => 334#5#0 [Addendinfo] => 337#5#0 ) ) ) )
但是當只有一組資料時,就少了一維:
PHP code
Array ( [getTrafficResult] => Array ( [trafficWay] => Array ( [Station] => 4828,4827,4823,4855,4573 [Line] => 3190,2914,4227,3730 [Price] => 8 [Alltime] => 28 [ChangeCount] => 1 [Type] => 5,2,2,5 [Station_name] => 尖沙咀地鐵站#尖東地鐵站#紅磡地鐵站#沙田地鐵站#新城市廣場 [Line_name] => 步行,西鐵線,東鐵線,步行 [Allstation] => 0|0|旺角東地鐵站#九龍塘地鐵站#大圍地鐵站|0 [Stationcount] => 0,1,4,0 [Direction] => 0#紅磡地鐵站#落馬洲地鐵站#0 [Time] => 6,3,15,2 [Distance] => 360,1125,8810,163 [Lineremark] => 0#0#0#從A出口 [Addstartinfo] => 0 [Addendinfo] => 0 ) ) )
我用$arr['getTrafficResult']['trafficWay']取資料並取得長度,第一個擷取長度為2,正確,但是第二個擷取就成了16,成了 欄位的個數了。
請問這個問題如何解決
------解決方案--------------------
從例子看,你只需判斷 isset($arr['getTrafficResult']['trafficWay'][0])即可區分
------解決方案--------------------