2016-02-12 80 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