【问题标题】:Get PHP class property from array从数组中获取 PHP 类属性
【发布时间】:2017-10-03 13:09:13
【问题描述】:

我有一个看起来像这样的数组:

Array
(
    [0] => my_val_one
    [1] => my_val_two
)

然后我有一个看起来像这样的对象:

   stdClass Object
    (
        [id] => 123123
        [name] => my_name
        [my_val_one] => stdClass Object
            (
                [my_val_two] => 1
                [my_val_three] => 2323
                [my_val_four] => 546567
            )
    )

我想引用以下对象值:

$ob->my_val_one->my_val-two

我不确定如何从我拥有的数组值中引用此类属性。

【问题讨论】:

  • 你能再解释一下,你想达到什么目标?
  • 数组与对象(?)的关系如何。当这是两个数组值时,你为什么要my_val_one->my_val-two?这没有任何意义
  • 您能否先介绍一下您为什么需要这个的背景?
  • 考虑到您更新的帖子,$ob->my_val_one->my_val-two 不起作用吗?

标签: php arrays class object


【解决方案1】:

array_reduce 在这里提供帮助:

$path = ['my_val_one', 'my_val_two'];

$value = array_reduce($path, function ($o, $p) { return $o->$p; }, $ob);

【讨论】:

  • 看准了!这正是我想要的。不知道array_reduce。我现在就去尝试理解它!
【解决方案2】:

如果我理解正确,您想使用第一个数组的字符串值来访问 StdClass 对象。您可以通过动态访问属性来做到这一点。这里$obj 是StdClass,$arr 是你的数组。

$obj->{$arr[0]}->{$arr[1]}

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 2018-03-16
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多