【发布时间】:2015-01-18 11:12:01
【问题描述】:
我从 API 收到一个大型多维数组。我将数组保存到类属性中,然后使用魔法 getter 来伪装数组并让最终用户使用键作为属性 ($class->key ==> $class->data['key'])。
现在我正在处理的数组非常多维,我需要不同“级别”或层上的键。想象一下这个数组有两个分支,有多个层。
我要查找的键通常是顶级的。
我将尝试说明这一点:
Array
baseKey
key1
value1
key2
value2
key3
subKey1
value3
subKey2
value4
key4
value5
key5
subKey3
value6
key6
subKey4
subSubKey1
value7
我正在寻找一个可以给任何键的函数,包括baseKey、key、subKey 和subSubKey,它将返回匹配的第一个键的相应值。
举个例子:
awesomeFindByKey('key2')
==> value2
awesomeFindByKey('subKey4')
==> array('subSubKey1' => 'value7')
awesomeFindByKey('key6')
==> array('subKey4' => array('subSubKey1' => 'value7'))
有这个功能还是我必须自己写一个?有人可能有这样做的功能吗?
我希望这是可以理解的。谢谢。
【问题讨论】:
-
递归会响吗?
-
我想知道是否有一个函数可以让我不必 array_map。
-
您可以编写自己的函数而不使用 array_map,因为它不是那么快。
-
那会是什么样子? foreach 不递归。那我会用什么?
-
这个数组是否存储在一个类中?