从最接近的星期几开始对PHP数组进行排序

时间:2016-10-31 14:04:25

标签: php arrays sorting date

我有一周中的PHP数组:

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

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

我需要在下周展示,该数组中的日期会突出显示,但需要从当天开始。

因此,如果今天的某一天晚些时候,我使用上面的数组来获得下周二,周三等,那么我最终错过了当周的结束。

超短的例子:

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

因此,如果今天是星期三,那么这将最终跳过周四,周六和周日,并从星期二开始。

我只能想出两种可行的方法,而且我不知道如何做到这两种方法。从一周的第二天开始对数组进行排序,并将其他数据放在数组的末尾,或者获取起始位置,循环遍历数组的其余部分,然后再循环遍历数组,直到我击中它起始位置。

如何获得下周的下周价值?

1 个答案:

答案 0 :(得分:1)

$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)

你现在需要按顺序循环它。