当前位置:Gxlcms > PHP教程 > 这种生成下拉option选项的效果是怎么实现的?

这种生成下拉option选项的效果是怎么实现的?

时间:2021-07-01 10:21:17 帮助过:10人阅读

回复内容:


应该是自己拼接的,大概是以下这种方式

  $arr = [
            0=> ['id'=>'1', 'title'=>'总栏目', 'children'=>[
                0=>['id'=>'4', 'title'=>'访谈', 'children'=>[]],
                1=>['id'=>'5', 'title'=>'公告', 'children'=>[]]]
            ],
            1 => ['id'=>'3', 'title'=>'总专题', 'children'=>[
                0=>['id'=>'6', 'title'=>'得利卡就了', 'children'=>[]],
                1=>['id'=>'10', 'title'=>'鸡豆凉粉', 'children'=>[
                    0=>['id'=>'7', 'title'=>'爱上生活', 'children'=>[]],
                    1=>['id'=>'8', 'title'=>'降低生产力骄傲', 'children'=>[
                        0=>['id'=>'9', 'title'=>'大了', 'children'=>[]]
                    ]]
                ]
                ],
            ]
            ]];
    $returnInfo = getSelectArray($arr);
    var_dump($returnInfo);
public function getSelectArray($arr, $grade = 0) {
        $char = ['', '├','| ├', '|   ├'];
        $encChar = ['','┕','| ┕', '|   ┕'];
        $returnInfo = [];
        foreach($arr as $key => $val){
            $sort = $key + 1;
            $tmp['id'] = $val['id'];
            if($val == end($arr)) {
                $tmp['title'] = $encChar[$grade] . $val['title'];
            } else {
                $tmp['title'] = $char[$grade] . $val['title'];
            }
            $children = getSelectArray($val['children'], $grade+1);
            $returnInfo[] = $tmp;
            $returnInfo = array_merge($returnInfo, $children);
        }
        return $returnInfo;
    }

人气教程排行