提问者:小点点

如何设置处理不同范围值的不同数组?


我想动态实现以下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>

我想不出的问题是我如何说like(口头代码):

如果值在-450到2的范围内,那么进入这个数组,否则进入那个数组

从我开始,我可以在cms(人们可以插入带有日期的内容)中设置一些标志,以便我可以执行简单的条件,如(口头代码):

“这是a日期还是b日期?然后做这个或那个”

但这会产生一个问题,因为我可能会标记一段时间,并将错误的日期放在错误的时间段。

因此,我想到的最后一个解决方案是设置一系列时间段,并通过创建不同的数组来分隔一些数组,在这些数组中,我可以根据值动态推送值。

这可能是一个开始(文档中的例子)?但是我怎么能设置一个if来控制什么去那里或者不去那里?

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

共1个答案

匿名用户

这是你问题的简单答案。

如果值在-450到2的范围内,那么进入这个数组,否则进入那个数组

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

希望,这能回答您的问题(不幸的是,大量的代码不适用于这个问题)。