带有起始索引的PHP重新排序数组

带有起始索引的PHP重新排序数组,php,arrays,Php,Arrays,我一周有很多天。我想通过给出开始日期来重新订购阵列 $days_order = array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"); echo '<pre>'; print_r($days_order); echo '</pre>'; 问题:设置开始日期时如何重新订购阵列 注:索引值很重要 例如: 如果我将开始日期设置为Wed,那么数组将输出以下内容: if (($i = array_search('Wed'

我一周有很多天。我想通过给出开始日期来重新订购阵列

$days_order = array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
echo '<pre>'; 
print_r($days_order); 
echo '</pre>';
问题:设置开始日期时如何重新订购阵列

注:索引值很重要

例如:

如果我将开始日期设置为Wed,那么数组将输出以下内容:

if (($i = array_search('Wed', $days_order)) !== false)
    $result = array_merge(array_slice($days_order, $i), array_slice($days_order, 0, $i));
试试这个:

$days_order = array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
$split_by = array_search("Wed", $days_order);

if ($split_by) {
    $first = array_slice($days_order, 0, $split_by);
    $second = array_slice($days_order, $split_by);
$result = array_merge($second, $first);
}
    print_r($result);

试着这样做:

$start_date = 'Wed';

for ($i=0; $i<7; $i++) $arr[$i] = date('D', strtotime("Next $start_date +$i days"));

不需要预先定义日期数组,只需循环遍历日期即可


你的答案和我的完全一样
$days_order = array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
$split_by = array_search("Wed", $days_order);

if ($split_by) {
    $first = array_slice($days_order, 0, $split_by);
    $second = array_slice($days_order, $split_by);
$result = array_merge($second, $first);
}
    print_r($result);
$start_date = 'Wed';

for ($i=0; $i<7; $i++) $arr[$i] = date('D', strtotime("Next $start_date +$i days"));