php - 有没有办法在数组中间启动一个 foreach 循环?

标签 php

我有几个月的数组。我想遍历每个月作为获取每个月值的关键但是......

我想从当前月份开始,运行 foreach 并返回到下一年的第 12 个月停止。

我已经尝试根据当前月份创建一个单独的月份数组,但它看起来有点笨拙。

最佳答案

您可以使用带有模计数器的 do/while 循环,例如

$months = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
$i = $current_month = 5;
do {
    echo $months[$i] . "\n";
    $i = ($i + 1) % 12;
} while ($i != $current_month);

输出:

Jun 
Jul 
Aug 
Sep 
Oct 
Nov 
Dec 
Jan 
Feb 
Mar 
Apr 
May

Demo on 3v4l.org

如果您还需要维护一个年份计数器,您可以使用此代码,它会在月份结束时递增年份:

$year = 2018;
$i = $current_month = 5;
do {
    echo $months[$i] . " $year\n";
    $i = ($i + 1) % 12;
    if ($i == 0) $year++;
} while ($i != $current_month);

输出:

Jun 2018
...
Dec 2018
Jan 2019
...
May 2019

Demo on 3v4l.org

关于php - 有没有办法在数组中间启动一个 foreach 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54527193/

相关文章:

php - 在网站上发现奇怪的 index.php

php - 在 codeigniter 中反向通配符搜索

php - 避免 Woocommerce 中处于处理状态的 COD 订单库存减少

java - 需要多少 Java 才能有效地使用 Hadoop 和 Mahout?

php - MySQL Issue join table with two columns against one

javascript - 删除没有文字的段落

php - Laravel:多对多,如何插入数据?

php - 导航栏上的下拉问题

php - ElasticSearch-用元数据排除匹配

php - 如何同时显示数组键和值?