채택완료

json으로 메뉴만들기

2018-10-10 (수) 23:22:17 4,986

json으로 nav를 만들어 보려고 했는데 쉽지가않아 질문합니다..

file.json

Copy
{
    "menu":{
        "LG소개":[
            {"비전":"/a1.html"},
            {"계열사":"/a2.html"},
            {"연혁":"/a3.html"}
        ],
        "INNOVATION":[
            {"INNOVATION":"/b1.html"}
        ],
        "홍보센터":[
            {"영상뉴스":"/c1.html"},
            {"인쇄광고":"/c2.html"},
            {"홍보영상":"/c3.html"},
            {"TV광고":"/c4.html"}
        ]
    }
}

위 json 으로 아래 html 구조를 만드려고 합니다.

Copy
<body>
    <?php
        $jsonFile = file_get_contents('file.json');
        $json = json_decode($jsonFile,true);
    ?>
    <ul>
        
        <li>
            <a href="/a1.html" class="subject">LG소개</a>
            <ul class="sub_mn">
                <li><a href="/a1.html">비전</a></li>
                <li><a href="/a2.html">계열사</a></li>
                <li><a href="/a3.html">연혁</a></li>
            </ul>
        </li>
        
        <li>
            <a href="/b1.html" class="subject">INNOVATION</a>
            <ul class="sub_mn">
                <li><a href="/b1.html">INNOVATION</a></li>
            </ul>
        </li>
        
        <li>
            <a href="/c1.html" class="subject">홍보센터</a>
            <ul class="sub_mn">
                <li><a href="/c1.html">영상뉴스</a></li>
                <li><a href="/c2.html">인쇄광고</a></li>
                <li><a href="/c3.html">홍보영상</a></li>
                <li><a href="/c4.html">TV광고</a></li>
            </ul>
        </li>
        <?php

            //ex
            foreach($json['menu'] as $key => $value ){
                echo '<li>...</li>';
            }
        ?>
    </ul>
</body>

.subject 의 href값은 [ .sub_mn li:first-child a ]의 href 값입니다.  << 여기서 잘 안되네요,,

foreach문안에 foreach문안에 foreach문(?) 넣다가 뭔가 아니다 싶어 질문합니다

도움부탁드립니다.

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
2018-10-11 (목) 08:50:34
Copy
echo "<ul>";
foreach($json['menu'] as $key => $value) {
    echo "<li><a href='".array_values($value[0])[0]."' class='subject'>".$key."</a><ul class='sub_mn'>";
    foreach($value as $k => $v) {
        echo "<li><a href='".array_values($v)[0]."'>".array_keys($v)[0]."</a></li>";
    }
    echo "</ul></li>";
}
echo "</ul>";

http://jjiniyam.cafe24.com/temp/wrid_267990.php

답변에 대한 댓글 1개

와 대단하시네요 반 포기하고 그누보드 메뉴배열로 짜고있었는데,,

답변을 작성하려면 로그인이 필요합니다.