2016-11-20 77 views
0

我想要動態地實現下面的HTML:如何設置處理不同範圍值的不同數組?

時間段AD:

<ul> 
    <li>1200</li> 
    <li>1300 
    <ul> 
     <li>1301</li> 
    </ul> 
    <li> 
</ul> 

時間段BC:

<ul> 
    <li>-200</li> 
    <li>-450 
    <ul> 
     <li>-451</li> 
    </ul> 
    </li> 
</ul> 

在下面我已經設置的陣列,以便我可以通過使用一些自定義字段將我的日期推入數組,然後告訴整個代碼在100年內計算,以便能夠將1301這樣的年份作爲1300下的嵌套ul。

  <ul> 
      <?php 
       $yearsArray = []; 
       $centuryHash = []; 
       query_posts(array( 
        'post_type' => 'post', 
        'posts_per_page' => -1 
       )); 
       while (have_posts()) : the_post(); 
        array_push($yearsArray, get_field("year")); 
        if (($wp_query->current_post +1) == ($wp_query->post_count)) { 
         $yearsArray = array_unique($yearsArray); 
         sort($yearsArray); 
        } 
       endwhile; 
       foreach ($yearsArray as $year) { 

        $currentCentury = floor($year/100)*100; 

        if(!$centuryHash[$currentCentury]){ 
         $centuryHash[$currentCentury] = []; 
        } 

        if($currentCentury != $year){ 
         $centuryHash[$currentCentury][] = $year; 
        } 
       } 
       foreach ($centuryHash as $century => $centuryYears) { ?> 
        <li class="dropdown"> 
         <?php if($centuryYears){ ?> 
          <a class="btn btn-default" href="#" class="dropdown-toggle" data-date="<?php echo $century; ?>" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> 
           <?php echo $century; ?> 
           <span class='caret'></span> 
          </a> 
          <ul class='dropdown-menu'> 
           <?php foreach ($centuryYears as $year) { ?> 
            <li> 
             <a class="btn btn-default" data-date="<?php echo $year; ?>" href="#"> 
              <?php echo $year; ?> 
             </a> 
            </li> 
           <?php } 
          echo "</ul>"; 
         } else { ?> 
          <a class="btn btn-default" data-date="<?php echo $century; ?>" href="#"> 
           <?php echo $century; ?> 
          </a>  
         <?php } ?> 
        </li> 
       <?php } 
      ?> 
     </ul> 

,我無法弄清楚的問題是我怎麼能說像(文字代碼):

如果值是-450至2的範圍內,則進入此陣,否則去該陣列中,而不是

從我結束我能在CMS設置(人們將能夠插入帶有日期的內容)的一些標誌,這樣我可以做一些簡單的條件語句像(文字代碼):

「這個日期是來自a還是b?然後做這樣或那樣的」

但是,因爲我的標誌一段時間和地點的錯誤的日期在錯誤的時間段產生的問題。

因此,我認爲最後的解決辦法是設置一系列的時間段,並通過創建不同的分隔符來創建不同的分組,我可以根據它們的值動態推送這些分組。什麼去那裏?

foreach (range(0, 12) as $number) { 
    echo $number; 
} 

回答

2

以下是對您的問題的簡單回答。

如果值是-450,直到2然後進入此陣的範圍內,否則進入該陣列中,而不是

if ($value >= -450 && $value <= 2) { 
    // do this 
} else { 
    // do that 
} 

希望,這個回答你的問題(這是不幸的是,超過了幾十個不適用於這個問題的代碼)。

+0

謝謝,這是有道理的,它其實很簡單,也許我只是上面的整個代碼重載。 –