Php Yii框架|同一表中的嵌套数组
使用CActiveRecord,我的桌子如下所示: 列parent_id与id有很多关系,并且工作正常Php Yii框架|同一表中的嵌套数组,php,arrays,yii,frameworks,Php,Arrays,Yii,Frameworks,使用CActiveRecord,我的桌子如下所示: 列parent_id与id有很多关系,并且工作正常 id | parent_id ---+---------- 1 1 <- top 2 1 <- means parent_id with 1 has parent with id=1 3 1 4 2 <- parent for is id=2 5 2 6 2 and so many nested le
id | parent_id
---+----------
1 1 <- top
2 1 <- means parent_id with 1 has parent with id=1
3 1
4 2 <- parent for is id=2
5 2
6 2 and so many nested levels....
id |父| id
---+----------
1使用以下方法解决:
您需要从模型中获取数据作为数组:
$somemodel = MyModel::model()->findAll();
然后将所有对象放入数组,而不是Yii对象模型或您需要的:
foreach ($somemodel as $k => $v)
{
$arrays[$k] = array('id' => $v->id, 'parent_id' => $v->parent_id, 'somedata' => 'Your data');
}
然后调用一个函数:
function buildTree(array $elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
然后调用将所有$arrays
数据放入buildTree函数以重建嵌套数组数据
$tree = buildTree($arrays);
现在,$tree
是嵌套数组数据
注意:函数没有深度,但您可以像下面的示例那样方便地添加:Yii 1.1和Yii 2有一个嵌套的集合扩展?是否有人在同一个表格的嵌套层上尝试过有用的示例?@Marin Sagovac,请发布所有依赖GII生成的模型,我会帮助你。我相信,这将帮助你:干杯!