2011-07-11 34 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是,但语法打破了它。再次感谢。 –