转换为嵌套格式 php

convert to nested format php

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

我希望有人能帮助我。我正在使用 php 仅供参考。

递归执行

// 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);