php
  • html
  • css
  • multidimensional-array
  • 2012-02-07 86 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

     相關問題

    • 暫無相關問題^_^