php
  • html
  • css
  • multidimensional-array
  • 2012-02-07 93 views -1 likes 
    -1

    我有一个数组$eps来自MYSQL表,我想输出它的内容到下面的html格式。我试图使用foreach循环来输出内容,但季节值正在包裹所有细节div。 下面的代码是什么,我只能想到PHP数组格式的HTML输出

    foreach($eps as $key){ 
        foreach($key as $k){ 
        echo "<div class='main'>"; 
         echo "<div class='season'>".$k['season']; 
          echo "<div class='details'>"; 
           echo "<div class='ep'>".$k['episode']."</div>"; 
           echo "<div class='title'>".$k['title']."</div>"; 
           echo "<div class='airdate'>".$k['airdate']."</div>"; 
           echo "<div class='plot'>".$k['plot']."</div>"; 
          echo "</div>"; 
         echo "</div>"; 
        echo "</div>"; 
        } 
    } 
    

    数组内容

    Array 
    (
        [1] => Array 
         (
          [0] => Array 
           (
            [title] => Pilot: Part 1 
            [date] => Sep. 22, 2004 
            [plot] => Forty-eight survivors of an airline flight originating from Australia, bound for the 
            [season] => 1 
            [episode] => 1 
           ) 
    
          [1] => Array 
           (
            [title] => Pilot: Part 2 
            [date] => Sep. 29, 2004 
            [plot] => Jack, Kate and Charlie return to the group, but the transceiver is broken. Sayid Jarrah 
            [season] => 1 
            [episode] => 2 
           ) 
        [2] => Array 
         (
          [0] => Array 
           (
            [title] => Man of Science, Man of Faith 
            [date] => Sep. 21, 2005 
            [plot] => One of the castaways is chosen to descend into the mysterious hatch, and Shannon stumbles 
            [season] => 2 
            [episode] => 1 
           ) 
    
          [1] => Array 
           (
            [title] => Adrift 
            [date] => Sep. 28, 2005 
            [plot] => After the raft explodes, Michael and Sawyer are left on what is left on the raft. They 
            [season] => 2 
            [episode] => 2 
           ) 
    

    CSS

    .main { 
        width: 750px; 
        margin-right: auto; 
        margin-left: auto; 
        clear: both; 
        overflow:auto; 
    } 
    .season { 
        margin: 5px; 
        padding: 5px; 
        width: 730px; 
        background: #960; 
        clear: both; 
        overflow:auto; 
        display: block; 
    } 
    .details { 
        display: block; 
        float: right; 
        border-bottom: thin solid #000; 
    } 
    .ep, .title, .airdate, .plot { 
        margin: 5px; 
        padding: 5px; 
        width: 675px; 
        background: #CCC; 
    } 
    
    +1

    所以最新的问题是什么?你想达到什么目的?你似乎有输出工作。 – Jakub 2012-02-07 21:26:17

    +0

    我想在剧集细节下展示一季。比下个赛季等等.. – 2012-02-07 21:30:15

    +0

    @BhaskarWankhede我编辑了我的答案两次,你能检查它吗? – motto 2012-02-07 21:33:24

    回答

    3

    只有1个次数每份文件的ID的....你知道吗?让他们上课。

    //only 1 main per total result, so, outside foreach. 
    echo "<div class='main'>"; 
    foreach($eps as $key){ 
        //one season per sub array, so outside the other foreach: 
        echo "<div class='season'>".$key[0]['season']; 
        foreach($key as $k){ 
          echo "<div class='details'>"; 
           echo "<div class='ep'>".$k['episode']."</div>"; 
           echo "<div class='title'>".$k['title']."</div>"; 
           echo "<div class='airdate'>".$k['airdate']."</div>"; 
           echo "<div class='plot'>".$k['plot']."</div>"; 
          echo "</div>"; 
        } 
        echo "</div>"; 
    } 
    echo "</div>"; 
    
    +0

    感谢您再次提醒。我总是搞砸ID和课程。 – 2012-02-07 21:55:03

    2
    $season = 0; 
    echo "<div id='main'>"; 
    foreach($eps as $key){ 
        foreach($key as $k){ 
    
         // season check start 
         if($season!=$k['season']) { 
         echo "<div id='season'>".$k['season']; 
         } 
         //season check finish 
          echo "<div id='details'>"; 
           echo "<div id='ep'>".$k['episode']."</div>"; 
           echo "<div id='title'>".$k['title']."</div>"; 
           echo "<div id='airdate'>".$k['airdate']."</div>"; 
           echo "<div id='plot'>".$k['plot']."</div>"; 
          echo "</div>"; 
         // season check start 
         if($season!=$k['season']) { 
         echo "</div>"; 
         $season = $k['season']; 
         } 
        } 
    } 
    echo "</div>"; 
    
    +0

    如果你使用这段代码,如果你想让'季节10'出现在它之后,一定要打季节'1..9''01..09' .....我不明白为什么一个简单的'!= '而不是'<'做不到...... – Wrikken 2012-02-07 21:31:24

    +0

    这就是我正在寻找的东西。感谢它正在工作... – 2012-02-07 21:35:47

    +0

    @Wrikken我不认为他会按随机顺序订购季节和剧集,尽管如果他决定展示最受欢迎的剧集等,您的建议可以更有效率...... – motto 2012-02-07 21:36:07

     相关问题

    • 暂无相关问题^_^