我有一个菜单表:
id、slug、标签、父级
父级与id
有关系,所以如果你有:
1,'foo-bar','Foo Bar',NULL
这将是根项目,而:
2, 'foo', 'Foo ', 1
属于“foo-bar”。然后你就可以拥有属于 foo
的项目等等。
如何在 PHP 中将其转换为多维菜单数组?所以我可以做这样的事情:
<?= $menu['foo-bar']['foo'] // echos 'Foo' ?>
我的要求与 How to convert DB table with parent son relation to multi-dimensional array 非常相似但那里的答案不起作用;它不是递归的。
最佳答案
这是 foreach
的示例(未经测试),它可以执行您想要的操作。
<?php
// $results is your data from database
$menu = array();
foreach($results as $k => $result) {
$key = $result['id'];
$parent = $result['parent'];
if(!empty($parent)){
array_push($menu[$parent]['parents'], $result);
} else {
unset($results[$k]['parent'];
$menu[$key] = $result;
}
}
var_dump($menu);
关于php - 将MySQL表与多维数组相关转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200164/