以递归方式获取对象属性和值(getting object properties and values recursivly)
所以我有一个对象:
$user->name->first = "Bob"; $user->name->last = "Smith"; $user->address->street = "1234 anywhere st."; $user->address->city = "Chicago"; $user->address->state = "Texas";如何在不知道“名称,地址”属性的情况下迭代这个对象?
我希望能够做到
foreach ($user as $key -> $value) {}现在我可以这样做:
foreach ($user as $key -> $value) { foreach ($value as $k => $v) { echo $k . "," . $v . "\n"; } }我得到一个很好的小清单
first,Bob last,Smith street,1234 anywhere st. city,Chicago state,Texas但是如何获取要打印的属性名称或地址?
即
name,first,Bob name,last,Smith address,street,1234 anywhere st. address,city,Chicago address,state,Texasso i have an object:
$user->name->first = "Bob"; $user->name->last = "Smith"; $user->address->street = "1234 anywhere st."; $user->address->city = "Chicago"; $user->address->state = "Texas";how can i iterate through this object without knowing the "name,address" property?
I want to be able to do
foreach ($user as $key -> $value) {}now i can do this:
foreach ($user as $key -> $value) { foreach ($value as $k => $v) { echo $k . "," . $v . "\n"; } }and i get a nice little list of
first,Bob last,Smith street,1234 anywhere st. city,Chicago state,Texasbut how can i get the property name or address to print?
i.e.
name,first,Bob name,last,Smith address,street,1234 anywhere st. address,city,Chicago address,state,Texas最满意答案
你想要的值是来自第一个foreach循环的$key 。
foreach ($user as $key => $value) { foreach ($value as $k => $v) { echo "$key,$k,$v\n"; } }IDEOne.com演示
The value you want is in $key already from the first foreach loop.
foreach ($user as $key => $value) { foreach ($value as $k => $v) { echo "$key,$k,$v\n"; } }IDEOne.com demo
更多推荐
发布评论