从数组中获取PHP类属性
我有一个数组,看起来像这样:从数组中获取PHP类属性,php,arrays,class,object,Php,Arrays,Class,Object,我有一个数组,看起来像这样: 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
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
)
)
然后我有一个物体看起来像这样:
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
我不确定如何从我拥有的数组值中引用该类属性。帮助:
$path = ['my_val_one', 'my_val_two'];
$value = array_reduce($path, function ($o, $p) { return $o->$p; }, $ob);
这里有帮助:
$path = ['my_val_one', 'my_val_two'];
$value = array_reduce($path, function ($o, $p) { return $o->$p; }, $ob);
如果我理解正确,您希望使用第一个数组的字符串值来访问StdClass对象。可以通过动态访问属性来实现这一点。这里,
$obj
是StdClass,$arr
是您的数组
$obj->{$arr[0]}->{$arr[1]}
如果我理解正确,您希望使用第一个数组的字符串值来访问StdClass对象。可以通过动态访问属性来实现这一点。这里,
$obj
是StdClass,$arr
是您的数组
$obj->{$arr[0]}->{$arr[1]}
你能再解释一下你想要实现什么吗?数组与对象(?)的关系如何。当这是两个数组值时,为什么要执行
my\u val\u one->my\u val-two
?这没有任何意义。首先,你能给我们一些背景知识来解释你为什么需要这个吗?考虑到你更新的帖子,$ob->my_val\u one->my_val-two
不起作用吗?你能再解释一下,你想实现什么吗?数组如何与对象相关(?)。当这是两个数组值时,为什么要执行my\u val\u one->my\u val-two
?这没有任何意义。你能给我们一些背景资料来说明你为什么需要这个吗?考虑到你更新的帖子,$ob->my\u val\u one->my\u val-two
不起作用吗?马上!这正是我想要的。我不知道关于数组的事。我现在就走,试着去理解它!完全正确这正是我想要的。我不知道关于数组的事。我现在就走,试着去理解它!