【问题标题】:Nested set model to flatten php array [closed]嵌套集合模型以展平 php 数组 [关闭]
【发布时间】:2022-06-17 02:32:12
【问题描述】:

我有以下问题:

我目前正在使用基于 Yii2 框架的 Craft CMS。嵌套集行为是将分层数据存储在关系数据库中的一种方法嵌套集行为是一种将分层数据存储在关系数据库中的方法。

为此,Craft CMS 使用以下软件包: https://www.yiiframework.com/wiki/2549/nested-set-with-yii2

解释嵌套集模型: https://en.wikipedia.org/wiki/Nested_set_model

在 CMS 中,为产品分配了以下类别:

Screenshot

当我加载这些类别时,我会返回以下数组:

$categories = [
    [
        'title' => 'Gebraucht',
        'root' => 1,
        'lft' => 2,
        'rgt' => 231,
        'level' => 1
    ],
    [
        'title' => 'Spülmaschinen',
        'root' => 1,
        'lft' => 3,
        'rgt' => 156,
        'level' => 2
    ],
    [
        'title' => 'Geschirrspüler',
        'root' => 1,
        'lft' => 4,
        'rgt' => 69,
        'level' => 3
    ],
    [
        'title' => 'Winterhalter UC-XL',
        'root' => 1,
        'lft' => 11,
        'rgt' => 12,
        'level' => 4
    ],
    [
        'title' => 'Gläserspülmaschinen',
        'root' => 1,
        'lft' => 70,
        'rgt' => 95,
        'level' => 3
    ],
    [
        'title' => 'Winterhalter UC-XL',
        'root' => 1,
        'lft' => 77,
        'rgt' => 78,
        'level' => 4
    ]
];

在这里,我将每个类别作为一个元素。将单个元素放在这样的层次结构中的最佳方法是什么?

$categories = [
    [
        'title' => 'Gebraucht',
        'root' => 1,
        'lft' => 2,
        'rgt' => 231,
        'level' => 1,
        'subcategories' => [
            [
                'title' => 'Spülmaschinen',
                'root' => 1,
                'lft' => 3,
                'rgt' => 156,
                'level' => 2,
                'subcategories' => [
                    [
                        'title' => 'Geschirrspüler',
                        'root' => 1,
                        'lft' => 4,
                        'rgt' => 69,
                        'level' => 3
                        'subcategories' => [
                            [
                                'title' => 'Winterhalter UC-XL',
                                'root' => 1,
                                'lft' => 11,
                                'rgt' => 12,
                                'level' => 4
                            ]
                        ]
                    ],
                    [
                        'title' => 'Gläserspülmaschinen',
                        'root' => 1,
                        'lft' => 70,
                        'rgt' => 95,
                        'level' => 3,
                        'subcategories' => [
                            [
                                'title' => 'Winterhalter UC-XL',
                                'root' => 1,
                                'lft' => 77,
                                'rgt' => 78,
                                'level' => 4
                            ]
                        ]
                    ]
                ]
            ]
        ]
    ]
];

感谢您的帮助。如果您有任何问题,请随时提出。

【问题讨论】:

  • 我不确定我是否遵循控制为什么第二次出现以及为什么它包含它所包含的内容的规则
  • 看不懂背后的模式?请你解释一下规则!
  • 你确定你是你在 $result 中发布的内容吗?
  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: php arrays transformation nested-sets


猜你喜欢
  • 1970-01-01
  • 2020-04-15
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 2014-05-28
  • 2011-04-28
  • 2011-11-17
相关资源
最近更新 更多