2015-03-19 48 views
0

我正在構建一個郵編查找服務,它將自動填充表單並在未找到時使用手動輸入。檢查SOAP數組中的對象在PHP中

我已經連接到SOAP客戶端,拉入數據,但現在我需要檢查數組以查看已設置的值,如果沒有,則執行其他操作。

到目前爲止,我有:

$params = array('ah21'=>array('session_id'=>$sessionid,'input'=>"$postcode,$number",'data'=>'STREET_1,HOUSE_1,DISTRICT_LEVEL,ORGANISATION,DISTRICT_2,FORMATTED_PREMISE_NO,TOWN,POSTCODE,COUNTY,COUNTRY')); 
    $address = $soapclient->__soapCall("ah21",$params); 
    $address = $address->address; 

我需要檢查是否「HOUSE_1」的值,如果沒有的話顯示「STREET_1」代替。

$firstline = NULL; 

function checkaddress(){ 
global $firstline; 
    if (isset($address->HOUSE_1)){ 
      $firstline = $address->HOUSE_1;    
    } else { 
    $firstline = $address->STREET_1;  
} 

我什麼都沒有回來?另外,如果你還沒有猜到我在學習PHP,那麼我的代碼中的任何指針都會很有幫助。

更新:忘記提及我在其他地方打印$ firstline,因此回到表單中。

回答

1

難道你不會錯過一個: 返回$ firstline在函數的結尾?

唯一可以說的是,也許$地址 - > HOUSE_1設置爲空。您可以通過以下方式替換您的代碼:

if ((isset($address->HOUSE_1) ? $address->HOUSE_1 : '') != '') 
    $firstline = $address->HOUSE_1; 
+0

完美,謝謝。 – ShambalaG 2015-03-19 13:58:35

+0

從數組中刪除逗號以獲取門牌號和街道的最佳方法? '$ firstline = array($ address-> FORMATTED_PREMISE_NO,$ address-> STREET_1);' – ShambalaG 2015-03-19 13:59:24

+0

implode(「」,$ your_array)將數組中的每個元素連接成一個以空格分隔的單個字符串。 – 2015-03-20 15:02:02

相關問題