【问题标题】:Simple PHP: Extract a PHP variable from an array简单 PHP:从数组中提取 PHP 变量
【发布时间】:2011-07-11 13:56:09
【问题描述】:

我需要将此数组中的“shortUrl”元素放入一个变量中,但不能!

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

帮助表示赞赏。

【问题讨论】:

    标签: php arrays variables


    【解决方案1】:

    它不是一个数组,它是一个对象(-tree)。

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

    应该可以。

    另外,我猜您似乎正在以 JSON 格式接收此结构?然后你可以使用json_decode()的第二个参数来制作一个关联数组。

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

    【讨论】:

    • 感谢您的帮助。它为我节省了很多痛苦。而不是 "['domain.com']" 我想 "$domain" (这是进入一个循环),但我无法得到正确的语法。花括号似乎没有这样做。欢迎任何想法!
    • 不知道,您当前使用的是哪个变体。它要么是$domain = $obj->results->{'http://www.domain.com'},要么是$domain = $array['results']['http://www.domain.com']。我建议您使用后者(请记住,这仅在您将json_decode() 的第二个参数设置为true 时才有效!)。但是,您应该阅读 php 手册中有关数组和对象的更多信息,因为它们都是 php 的重要组成部分。
    • 我一定会阅读的。我无法让这最后一点工作。不好意思再问。 " $domain = $response['results']['$MYVAR']['shortUrl']; " 我试图在 $MYVAR 所在的位置插入一个变量,但语法破坏了它。再次感谢。
    • @Jonathan:你需要采用 KingCrunch 的解决方案。
    • @Jonathan:现在您应该阅读有关 PHP 字符串以及单引号 '$var'、双引号 "$var" 和(此处 ;))根本没有字符串 $var 之间的区别。 (-->$response['results'][$MYVAR])。你真的应该学习基础知识。
    猜你喜欢
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2014-02-10
    • 2011-01-14
    • 2012-03-11
    • 2020-05-28
    相关资源
    最近更新 更多