【发布时间】:2018-05-22 07:13:08
【问题描述】:
我有以下(json)对象:
$obj = json_decode('{
"Group1": {
"Blue": {
"Round": [
"Harold",
"Arthur",
"Tom"
]
},
"Green": {
"Round": [
"Harold"
],
"Circle": [
"Todd",
"Mike"
]
}
},
"Group2": {
"Blue": {
"Round": [
"Peter"
]
}
}
}', true);
我试图弄清楚如何递归地遍历它,以便我可以看到数组中的所有不同路径。
它可以是 4 个单独的回显或 4 行字符串。 > 可以替换为任何内容或什么都不替换。如果每行单独回显或推送到可能提供最大灵活性的数组。
Group1 - Blue - Round - (Harold, Arthur, Tom)
Group1 - Green - Round - (Harold)
Group1 - Green - Circle - (Todd, Mike)
Group2 - Blue - Round - (Peter)
我无法理解它,所以任何帮助都将不胜感激。
我想我可以以某种方式循环遍历每个喜欢:
foreach($obj as $index => $value)
{
// and then somehow do this until you reach an array?
}
【问题讨论】:
-
你需要遍历每个成员吗?也许你想要
array_walk -
是的,找到每条路径。嗯,不知道如何使用深度数组,但我会尝试研究它
-
您的对象是否始终采用
Group > Color > Shapes > Names的格式?或者可能有其他类别或其他东西? -
我知道有多少层深(在本例中为 4,但可能是 2,8 等),最后一个始终是一个数组,但不幸的是名称可能不同。 @欧文
-
请发布您想要的确切输出结构。你真的想要一个 4 行字符串吗?或者你想要一个有四个元素的一维数组?你想让我们从递归函数中回显它吗?您是否希望将结果作为一组连接字符串返回?
标签: php arrays recursion multidimensional-array