2016-02-12 81 views
1
Array 
(
    [0] => stdClass Object 
     (
      [day_name] => Sunday 
      [session_time_1] => 
     ) 

    [1] => stdClass Object 
     (
      [day_name] => Monday 
      [session_time_1] => 
     ) 

    [2] => stdClass Object 
     (
      [day_name] => Tuesday 
      [session_time_1] => 
     ) 

    [3] => stdClass Object 
     (
      [day_name] => Wednesday 
      [session_time_1] => 
     ) 

    [4] => stdClass Object 
     (
      [day_name] => Thursday 
      [session_time_1] => 
     ) 

    [5] => stdClass Object 
     (
      [day_name] => Friday 
      [session_time_1] => 
     ) 

    [6] => stdClass Object 
     (
      [day_name] => Saturday 
      [session_time_1] => 
     ) 

) 

根据当前日期名称对此数组进行排序,以便当前日期优先,等等。根据当天日期排列数组

+0

我不太明白这一点。星期几,例如星期六,没有指定一个特定的日期,它不能与当前日期相比较。 – Raptor

回答

1

你可以试试这个 -

$day = date('l'); 

// Find the keywher the value found 
foreach($array as $key => $v) { 
    if($v->day_name == $day) { 
     $found_at = $key; 
     break; 
    } 
} 

// Split the array accrodingly 
$temp = array_chunk($array, $found_at); 
$first = array_shift($temp); 

// Merge them 
$final= array(); 
foreach($temp as $v) { 
    $final = array_merge($final, $v); 
} 
$final = array_merge($final, $first); 

Fiddle

+0

如何从当前日期开始获取日期 –

+0

Did not'd you .. –

0

作为替代方案,你可以使用usort完成这个任务,并采取使用strtotime

例子:

usort($array, function($a, $b){ 
    return strtotime($a->day_name) - strtotime($b->day_name); 
}); 
+0

OP要根据当天进行排序。像阵列将从**星期五**开始为今天。 –

+0

@Sougata是的,这样做,你可以自己尝试,将你的环境设置为星期三或其他的,它会从那天开始,直到下周 – Ghost