2011-07-11 61 views
-1

我需要從這個數組中獲取「shortUrl」元素到一個變量中,但不能!簡單的PHP:從數組中提取一個PHP變量

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" 
} 

幫助讚賞。

回答

5

它不是一個數組,它是一個對象( - 樹)。

echo $obj->results->{"http://www.domain.com"}->shortUrl; 

應該工作。

另外它看起來像你正在接受這種結構作爲JSON我猜?然後你可以使用第二個參數json_decode()來創建一個關聯數組。

$array = json_decode($json, true); 
echo $array['results']['http://www.domain.com']['shortUrl']; 
+0

謝謝您的幫助。它爲我節省了很多痛苦。而不是「['http://www.domain.com']」我想要「$域」(它是在一個循環內),但我無法得到正確的語法。大括號似乎不這樣做。任何想法歡迎! –

+0

不知道,你正在使用哪個變種。它可以是'$ domain = $ obj-> results-> {'http://www.domain.com'}或$ $ domain = $ array ['results'] ['http://www.domain。 com公司]'。我建議你使用後者(並且記住,當你將'json_decode()'的第二個參數設置爲'true'時,這才起作用!)。但是,您應該在php手冊中閱讀更多關於數組和對象的內容,因爲它們都是php的重要組成部分。 – KingCrunch

+0

我會確定地閱讀。我無法得到這最後一點工作。抱歉再次提問。 「$ domain = $ response ['results'] ['$ MYVAR'] ['shortUrl'];」我試圖插入一個變量,其中$ MYVAR是,但語法打破了它。再次感謝。 –