【问题标题】:PHP: Access element inside array inside object inside arrayPHP:在数组内的对象内访问数组内的元素
【发布时间】:2016-02-02 10:12:05
【问题描述】:

我想知道在数组内的对象内以数组内的元素为目标的正确语法。

如果我对 $result 数组执行 var_dump,它看起来像:

array(1) {
  [0]=>
  object(stdClass)#8626 (10) {
    ["id"]=> string(2) "24"
    ["fname"]=> string(4) "firstname"
    ["lname"]=> string(10) "lastname"
    ["email"]=> string(14) "email@gmail.com"
    ["personnummer"]=> string(5) "66655"
    ["snailmail"]=> string(1) "1"
    ["lineage_nr"]=> string(1) "6"
    ["payed"]=> string(1) "0"
    ["belong_to_lineage"]=> string(1) "1"
    ["lineage_name"]=> string(0) ""
  }
}

如何获得元素“payed”的值?

它需要多个:$result[0]->payed..

我有这行代码:

echo "<h1> PAYED has the value: " . $result[0]->payed . "</h1>";

结果是:

"Trying to get property of non-object" 

编辑: 错误 - 查询结果为空,这就是为什么我无法定位“$result[0]->payed”(它不存在)。

【问题讨论】:

  • 对象的属性不是数组,它们只是由 var_dump 报告的。
  • $result[0]-&gt;payed 应该非常适合您展示的内容。
  • 如果索引不为零或者您不关心索引是什么,即关联数组或非零索引...current($result)-&gt;payed 也应该可以工作。

标签: php arrays object multidimensional-array


【解决方案1】:

这是它如何工作的概念证明。是什么让你认为它没有? (不是试图听起来刻薄)你正确引用它吗?

$obj = array(new stdClass());
$obj[0]->firstName = "NAME!";
var_dump($obj);
echo $obj[0]->firstName;

回声:

array(1) {
  [0]=>
  object(stdClass)#1 (1) {
    ["firstName"]=>
    string(5) "NAME!"
  }
}
NAME!

【讨论】:

  • 我从这一行得到“尝试获取非对象的属性”: echo "

    PAYED has the value: " 。 $结果[0]->已付。 "

    "; (我刚刚更新了我原来的消息)
  • 有什么事情你没有向我们展示吗?使用您发布的代码,您应该能够像这样访问该属性。
  • 我的错!在没有返回结果(空)的查询之后,我试图获取 $result[0]->payed 的值。现在我明白了……大错特错。
猜你喜欢
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多