【发布时间】:2016-02-02 23:24:53
【问题描述】:
好的,假设我有一个数组,$arr。我想访问$arr['a']['b']['c']...。我还有另一个数组$keys,看起来像这样:['a', 'b', 'c', ...]。如何使用$keys作为标识符来访问$arr的子元素?
换句话说,我基本上想做一些类似的事情:$arr[$keys[0]][$keys[1]][$keys[2]]。除了在那个例子中,我硬编码它只有在$keys 正好有三个元素时才能工作;这不好,我希望$keys 具有任意长度。
如果我已经成功地解释了我想要做什么,有人可以告诉我这是否可能吗?非常感谢。
【问题讨论】:
-
我希望 $keys 具有任意长度。 意味着您必须在
$arr中有这些索引,对吧? -
嗯,是的,我们可以假设我在
$keys中拥有的所有索引确实存在于$arr中。 -
$keys 有任意数量的元素,但 $arr 将始终是 3 维的?而且您总是想从 3 个维度获取数据,或者更少/更多?
-
还有,你的
$arr有多少个维度? -
$arr是 N 维的,$keys的长度是 N 或更短。我事先不知道N是什么。我现在在想,这个问题的解决方案可能是递归的,我实际上可能对答案有所了解......