php - 这种生成下拉option选项的效果是怎么实现的?
PHPz
PHPz 2017-04-11 09:12:16
[PHP讨论组]

PHPz
PHPz

学习是最好的投资!

全部回复(1)
巴扎黑


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

  $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;
    }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号