解码我存储的一个JSON字符串时,对象的数组成员被封装在对象中,这使得访问数组元素变得不方便。
对象units
包含由键定义的unit
个对象数组,该键是三种类型之一。数组排列如下:
array (typeA => unit(1), typeB => unit(2), typeC => unit(3) )
我还有一个包含订单中三种类型的数组,如下所示:
array (typeA, typeB, typeC)
因此,为了访问一个单元,假设您不知道确切的单元类型,那么它在逻辑上会遵循以下内容:
Units->$type[$i][$j]
但它不起作用。我尝试了以下内容:
Units->{$type[$i]}[$j]
Units->$type[$i]->$j
我设法让它发挥作用的唯一方法是将动作分为两行。首先获取密钥,然后应用单元对象的索引。
$aUnit = $units->$type[$i]; // Gets <type x>
$aUnit = $aUnit[$j]; // Gets the unit obj at j
这是结构的转储:
object(stdClass)[4]
public 'typeA' =>
array (size=50)
0 =>
object(stdClass)[1]
public 'id' => int 436