使用未知密钥访问嵌套关联数组

时间:2011-11-07 22:35:14

标签: php object data-structures multidimensional-array

我试图从对象中的多维数组中访问元素。例如,我们假设有一些类Foo有一个名为$ phone的变量,它代表多维数组。

$phone -> structure will look like
Array {
  "home" Array(1) {[0] = "555-1212"},
  "work" Array(2) {[0] = "555-1234", [1] = "555=5434"},
  "other" Array(1) {[0] = "555=9090"}
}

注意:我们不能假设我们知道密钥。

我可以通过给出明确的密钥来访问一个值,即

$foo->phone["home"][0]

当我没有明确地知道密钥并将其从其他地方拉出来时,问题就出现了。 例如,如果$ type =“phone”,$ subtype =“home”,我想要第一个我希望使用的条目:

$object->$type[$subtype][0]

获取值,但是我得到一个错误,它不认为它是一个数组。我不确定错误在哪里。

接下来就是将元素添加到最低级别的数组中。我假设以下内容可行,但不会:

array_push($object->$type[$subtype], $value)

这个多维数组允许我将键标记的电话号码存储在一个嵌套结构中。如果这个问题过于复杂,请告诉我。我选择这种结构的原因是因为键可以是用户自定义的任何内容。

感谢。

1 个答案:

答案 0 :(得分:1)

我相信如果您将$ object-> $ type保存为自己的变量,然后访问该变量以深入数组,这将会有效。