1
我的阵列转换关联数组元素到对象仅
$arr = array(
"name" => "Prakash",
"tall" => "maybe",
"nick_names" => array ("p", "b", "bee", "prak", "new_names" => array("short_name" => "sn", "long_name" => "ln"))
);
我希望能够创建从该值可以通过属性被访问的对象。
例如
$obj->name // "PRAKASH"
$obj->nick_names // array("p", "b", "bee", "prak", "new_names" => (object))
我怎么能得到这个?
我似乎能够做到正是我需要通过
$obj = json_decode(json_encode($arr));
但很明显,这是不应该做的事情。
谢谢。
@马特:无。数组在任何方面都更好(性能,遍历能力,可读性)。不知道为什么OP甚至想要这个。 – 2012-08-10 20:37:10
您的意思是$ obj =(object)$ arr?作为(stdClass)$ arr,不起作用。虽然(对象)强制转换不会将“new_names”键转换为对象。 (请检查描述,我在“nick_names”下的新密钥中添加) – 2012-08-10 20:44:04
@PrakashRaman:您想递归地将所有数组转换为对象。在这种情况下,您最好使用json_decode和json_encode。问题仍然存在,你为什么要这样的事情?数组在各方面都更好。 – 2012-08-10 20:50:50