【发布时间】:2019-04-09 18:59:05
【问题描述】:
我正在向 API 发出请求,并且对于每个请求,我都会返回一个带有 BrowseNodes 的数组。在这个数组中,我得到了这个结果:
array:1 [
"BrowseNode" => array:3 [
"BrowseNodeId" => "2502033031"
"Name" => "OBD-II Diagnosewerkzeuge"
"Ancestors" => array:1 [
"BrowseNode" => array:3 [
"BrowseNodeId" => "5142250031"
"Name" => "Motorwerkzeuge & Zubehör"
"Ancestors" => array:1 [
"BrowseNode" => array:3 [
"BrowseNodeId" => "2502064031"
"Name" => "Werkzeuge"
"Ancestors" => array:1 [
"BrowseNode" => array:4 [
"BrowseNodeId" => "79899031"
"Name" => "Kategorien"
"IsCategoryRoot" => "1"
"Ancestors" => array:1 [
"BrowseNode" => array:2 [
"BrowseNodeId" => "78191031"
"Name" => "Auto & Motorrad"
]
]
]
]
]
]
]
]
]
]
如果这将是一个始终具有此长度的固定数组,那么我很容易获得最后一个 BrowseNode 数组和键为“Name”的值。在这种情况下,它将是这个"Name" => "Auto & Motorrad"。
但是,因为一个类别可以有一个或多个嵌套数组,所以它不是静态的...
这意味着我必须找到一种解决方案,以始终获取嵌套最多的数组,并从中获取名称以获取类别。因为它是动态数据,我不知道如何解决那。我只知道我总是必须得到BrowseNode,然后进入BrowseNode 数组。我必须再次获得Ancestors 和这个Ancestors。我必须获取BrowseNode 数组,直到我到达最后一个BrowseNode 数组并获取名称。
所以,我必须遍历我的数组,直到 BrowseNode 数组不再有 Ancestors 数组并获取此 BrowseNode 数组的名称。
你们对如何做到这一点有任何想法吗?
【问题讨论】:
-
如果您包含包含分叉的示例数据,您的问题会更清楚(更好地理解任务要求)。然后你可以更好地解释“深度”因素。
-
@Jan 我的帖子是回答你还是我错过了这个问题?
-
是的,确实如此。抱歉,忘记点赞了! :) @DavidWinder
标签: php arrays laravel loops multidimensional-array