DB结果到层次结构 - 柔性尺寸

  • 本文关键字:结果 层次结构 DB php
  • 更新时间 :
  • 英文 :


我有以下以下数据来自db(我不控制此) - 它可能只有a_id and a_title,否则它可以在z_id/z_title

如果可以:

|a_id| a_title |b_id| b_title |c_id| c_title |
|   1|A Title 1|   1|B Title 1|   1|C Title 1|
|   1|A Title 1|   1|B Title 1|   2|C Title 2|
|   1|A Title 1|   2|B Title 2|   3|C Title 3|
|   1|A Title 1|   2|B Title 2|   4|C Title 4|
|   2|A Title 2|   3|B Title 3|   5|C Title 5|
|   2|A Title 2|   3|B Title 3|   6|C Title 6|
|   2|A Title 2|   4|B Title 4|   7|C Title 7|
|   2|A Title 2|   4|B Title 4|   8|C Title 8|

|a_id| a_title |b_id| b_title |
|   1|A Title 1|   1|B Title 1|
|   1|A Title 1|   2|B Title 2|
|   2|A Title 2|   3|B Title 3|
|   2|A Title 2|   4|B Title 4|

我想最终想到的是

$data = [
    '1' => [
        'id' => 1,
        'title' => 'A Title 1',
        'children' => [
            '1' => [
                'id' => 1,
                'title' => 'B Title 1',
                'children' => [
                    '1' => [
                        'id' => 1,
                        'title' => 'C Title 1',
                    ],
                    '2' => [
                        'id' => 2,
                        'title' => 'C Title 2',
                    ],
                ]
            ],
            '2' => [
                'id' => 1,
                'title' => 'B Title 2',
                'children' => [
                    '3' => [
                        'id' => 3,
                        'title' => 'C Title 3',
                    ],
                    '4' => [
                        'id' => 4,
                        'title' => 'C Title 4',
                    ],
                ]
            ],
        ],
    ],
];

我确实知道我期望哪些字段,例如我有以下数组:

$fields = [
    'a',
    'b',
    'c',
];

我通常会发布一些代码,但是我有点坚持从哪里开始,并且想知道我是否采取了错误的方法,尽管我无法控制DB一种想法

谢谢!

i使用其他方法解决了这一点 - 它需要每个层次结构查询,但是查询并不是太重,并且使代码更简单

最新更新