转换为嵌套格式php

时间:2015-11-27 05:24:19

标签: php laravel-5 nested laravel-5.1

我只想在下面显示正确的图像数据结构方面提供一些帮助。基本上我想要的是以嵌套的形式显示它。从下面的数据,我希望它显示如下:

  • 恩格尔(parent_id = 0的父母)
    • Chest Fridge - 冰柜
      • 小恩格尔
      • digital platinum
    • 直立式冰箱
      • 内置冰箱
    • 冰箱配件
      • 毛毯
      • 携带手柄

enter image description here

我希望有人能帮助我。我正在使用php fyi。

1 个答案:

答案 0 :(得分:0)

以递归方式执行

// For example, data fetched from database:
$data = [
    ['id' => 1, 'sku' => 'name1', 'parent_id' => null],
    ['id' => 2, 'sku' => 'name12', 'parent_id' => 1],
    ['id' => 3, 'sku' => 'name12', 'parent_id' => 1],
    ['id' => 4, 'sku' => 'name2', 'parent_id' => null],
    ['id' => 5, 'sku' => 'name123', 'parent_id' => 2],
];

// Recursive function
function outTree($data, $parentId = null) {
    $str = '';
    foreach ($data as $row) {
        if ($row['parent_id'] == $parentId) {
            $str .= '<li>' . $row['sku'];
            $str .= outTree($data, $row['id']);
            $str .= '</li>';
        }
    }
    if ($str) {
        $str = '<ul>' . $str . '</ul>';
    }
    return $str;
}

echo outTree($data);