带有起始索引的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"));