在解码我存储的 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