Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从一周中最近的一天开始对PHP数组排序_Php_Arrays_Sorting_Date - Fatal编程技术网

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

从一周中最近的一天开始对PHP数组排序,php,arrays,sorting,date,Php,Arrays,Sorting,Date,我有一个PHP数组,包含一周中的几天: $dow = array( 2, 3, 4, 6, 7 ); 此数组是动态生成的。所以它可能是上面的值,也可能是稍微修改过的版本 我需要显示下周,突出显示该数组中的日期,但需要从当前日期开始 因此,如果一周中的今天比较晚,并且我使用上面的数组获取下一个星期二、星期三等,那么我将错过当前一周的结束时间 超短示例: $today = date(); foreach $dow as $id => $weekday: // display next

我有一个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)

您现在只需要按顺序将其循环。

您能给出一些您实际需要的示例吗?我不知道你所说的阵列中的当前日期+下周日期是什么意思。有两件事可能会对您有所帮助:使用
\DateTime()
而不是
date()
(这样您可以添加1天的时间戳间隔)和使用回调而不是固定算法的PHP排序函数。但我不需要一天又一天。在接下来的七天中,我只需要数组中平日的天数。这就是我需要的。我需要每一天的下一天。该数组的顺序需要根据一周中的当前日期进行更改。该数组可能重复