我有一组定义为{'preference name',value}
的对象。例如
$preferences[] = {'abc',123};
$preferences[] = {'def',456};
我想像这样访问它们:
$pref = $preferences['abc'];
当然,我知道我可以将它们作为键控数组开始分配,但是我通过JSON获取值,而json_decode
总是创建一个对象数组。引导我们处理上述情况的一些示例JSON将是:
{'abc':123,'def':456}
显然使用循环来隐藏它们是微不足道的,但我想知道是否有更好的单行程可以完成这项工作?
答案 0 :(得分:1)
如果将JSON解码为关联数组并且所有属性都是唯一的,那么只需合并子数组:
$preferences = json_decode($json, true);
$preferences = call_user_func_array('array_merge', $preferences);
答案 1 :(得分:0)
看起来很难看,但嘿,它有效。
<?php
$a = ['abc'=>123,'def'=>456];
$obj = json_decode(json_encode($a));
var_dump($obj->abc); //123
$arr = (array)$obj;
var_dump($arr["abc"]); //123