2011-07-11 48 views
1

我希望能夠echo $domain從這個新手PHP:插入一個變量呼應

$domain = $response['results']['$MYVAR']['shortUrl'];

我試過花括號和格式$ MYVAR的其他各種方法,但語法是錯誤的。

最受歡迎的幫助!

編輯 - >的var_dump($響應):

object(stdClass)#1 (4) { 
    ["errorCode"]=> int(0) 
    ["errorMessage"]=> string(0) "" 
    ["results"]=> object(stdClass)#2 (1) { 
     ["http://www.domain.com"]=> object(stdClass)#3 (5) { 
      ["userHash"]=> string(6) "oSEMki" 
      ["shortKeywordUrl"]=> string(0) "" 
      ["hash"]=> string(6) "oms2ZB" 
      ["shortCNAMEUrl"]=> string(20) "http://bit.ly/LALALA" 
      ["shortUrl"]=> string(20) "http://bit.ly/LALALA" 
     } 
    } 
    ["statusCode"]=> string(2) "OK" 
} 

我可以看到 「domain.com」 元罰款,但是當我這樣做:

的var_dump($響應[ '結果' ] [$ MYVAR]);

它返回NULL!這就是爲什麼$ domain = $ response ['results'] [$ MYVAR] ['shortUrl'];也失敗了。奇怪!

--edit 2 -

var_dump($MYVAR);給出:

string(118) "http://www.domain.com"

+1

我看不出你如何能問這再次:http://stackoverflow.com/questions/6651193/simple-php-extract-a-php-variable-from-an-array – phant0m

回答

4

試試這個:

$domain = $response['results'][$MYVAR]['shortUrl']; 
echo $domain; 

你確定它是存儲在一個三維3陣列這樣呢?因爲這看起來像不必要的複雜化。

+0

@JonathanRoss啊,對不起。嘗試使用'var_dump($ domain);''''var_dump($ response ['results']);''''var_dump($ response ['results'] [$ MYVAR]);'''''他們的東西。回聲$ MYVAR看看這是否是正確的索引名稱。等等.. – FinalForm

+0

@JonathanRoss做這個回聲'$ response-> results-> shortUrl;' – FinalForm

+0

@FinalForm:不,你忘了'$ MYVAR' – phant0m

0
$domain = $response['results'][$MYVAR]['shortUrl']; 

您不需要在$ MYVAR附近引號。

+0

仍然沒有得到它不幸:'$ domain = $ response ['results'] [$ MYVAR] ['shortUrl']; echo $ domain;'$ MYVAR是一個URL並且像'['http://domain.com']'一樣工作,但不是[$ MYVAR]。 –

+0

嘗試print_r($ response)。這將幫助您查看整個數組鍵和值。 – Trevor

0

您是否嘗試過沒有$ MYVAR附近的引號?

1

嘗試沒有引號

$domain = $response['results'][$MYVAR]['shortUrl']; 

或用雙引號

$domain = $response['results']["$MYVAR"]['shortUrl']; 

編輯:

在反應您的編輯。您像訪問數組一樣訪問變量,但變量是stdObject的實例。所以,如果你想存取權限,則必須重新輸入這樣的:

$tmp = (array) $response; 
$domain = $tmp['results'][$MYVAR]['shortUrl']; 

或訪問狀物體

$domain = $tmp->results->$MYWAR->shortUrl; 

編輯2:

所以這很奇怪,因爲http://www.domain.com不長達118個字符,正如var_dump寫的。

你在哪裏以及如何填寫變量$MYVAR

+0

謝謝,Jakub。這似乎並沒有工作:( –

+0

給我var_dump($ MYVAR)的輸出請求。 –

+0

格式化是borked,我會把它放在問題中。 –

0

這是一個對象。

$domain = $response->results->$MYVAR->shortUrl;