php - 使用完整的键路径打印多维数组的最终值
问题描述
我有多维数组,例如:
$input = [
'a' => [
'b' => 'c',
'd' => 'e',
'f' => [
'g' => 'h'
],
],
'i' => 'j',
'k' => [
'l' => 'm'
],
];
我需要使用完整的键路径打印所有非数组值。像这样:
a > b > c
a > d > e
a > f > g > h
i > j
k > l > m
我怎样才能做到这一点?
解决方案
您需要使用递归函数来遍历数组的级别。这应该会给你想要的结果:
function list_paths($input) {
$paths = array();
foreach ($input as $k => $v) {
if (is_array($v)) {
foreach (list_paths($v) as $path) {
$paths[] = $k . " > " . $path;
}
}
else {
$paths[] = $k . " > " . $v;
}
}
return $paths;
}
print_r(list_paths($input));
输出:
Array (
[0] => a > b > c
[1] => a > d > e
[2] => a > f > g > h
[3] => i > j
[4] => k > l > m
)
推荐阅读
- c - 我做了一个新的排序算法还是已经发明了它
- javascript - 在 JavaScript 中使用 .catch 处理错误的问题?
- angular - Angular - 类型“IStudent []”上不存在属性“结果”
- java - Spring Boot JPA多对多杰克逊,序列化每个实体
- python - Python Click:将对象传递给命令时出现RuntimeError
- sonos - Sonos Control API:无法将消息路由到目标端点
- wpf - Revit 插件窗口在家庭升级后停止响应
- sql - 如何根据 SQL 中的 group by 滚动时间戳计算不同的 Id
- python - 我无法理解哪些参数包含在哪些方法中
- python - 在包含另一列中列表的所有值的列中查找具有重复项的行的方法