对PHP数组从一周中最近的一天开始排序


Sort a PHP array starting with closest day of week

我有一个PHP数组的星期:

$dow = array( 2, 3, 4, 6, 7 );

这个数组是动态生成的。所以它可能是上面的值,也可能是稍微改变的版本。

我需要显示下一周,并突出显示数组中的日期,但需要从当前日期开始。

因此,如果今天是一周中的晚一天,并且我使用上面的数组来获取下一个星期二,星期三等,那么我最终会错过当前一周的结束。

超短示例:

$today = date();
foreach $dow as $id => $weekday:
    // display next $weekday after $today
endforeach;

如果今天是星期三,那么这将跳过星期四、星期六和星期日,从星期二开始。

我只能想出两种可能的方法来做这件事,我不确定怎么做。或者从一周的第二天开始对数组进行排序,并将其他的放在数组的末尾,或者获取起始位置,循环遍历数组的其余部分,然后再次循环遍历数组,直到到达起始位置。

我如何得到下周的这些天的价值?

$today = date('N');
foreach ($dow as $key => $value) {
    if ($value >= $today) {
        break;
    }
}
$dow = array_merge(array_slice($dow, $key), array_slice($dow, 0, $key));

如果今天是4,数组现在是:

array(4, 6, 7, 2, 3)

你现在只需要按顺序遍历它。