【发布时间】:2018-07-05 15:30:34
【问题描述】:
我有一个深层嵌套的多维数组。我希望能够搜索多个键/值对并返回其父匹配项。
示例数组:
//$array
Array
(
[0] => Array
[ID] => 1
[Name] => My Name
[GroupLocations] => Array
(
[0] => Array
(
[GroupId] => 111
[LocationId] => 222
[Location] => Array
(
[Name] => My Location
[Street1] => 555 Somewhere Lane
[City] => City
[County] => County
[State] => CA
[Country] => US
[PostalCode] => 00000
)
)
)
)
[1] => Array
[ID] => 2
[Name] => My Other Name
[GroupLocations] => Array
(
[0] => Array
(
[GroupId] => 222
[LocationId] => 333
[Location] => Array
(
[Name] => My Other Location
[Street1] => 666 Other Rd.
[City] => City
[County] => County
[State] => CA
[Country] => US
[PostalCode] => 00000
)
)
)
)
)
类似于PHP Search an Array for multiple key / value pairs,但考虑到更深层次。
因此,如果我有上面的示例数组,并且想要过滤数组并根据需要搜索数组的不同嵌套部分的过滤器获取结果
$filters = array(
'ID' => $_GET[‘ID’],
'LocationId' => $_GET['LocationId']
);
$results = filterMyArray($array, $filters);
其中 filterMyArray 函数将使用过滤器数组递归过滤所有级别并返回所有匹配的索引/。努力想出一个体面的解决方案。关于如何完成此任务的任何建议?
【问题讨论】:
-
你的描述有点模糊。添加一些各种输入的预期输出示例确实有助于阐明您想要获得的内容。
-
感谢您查看@Don'tPanic。我已经更新了我的问题,希望能得到澄清。
-
你也许可以在这里使用'treewalker'库来帮助你---->github.com/lukascivil/TreeWalker
标签: php