2017-11-11 3 views
0

array_multisortをカスタムオーダーで使用する方法はありますか? matchDateフィールドの下のコードからわかるように、最初の日付が今日の日付に最も近い日付順に表示する必要があります。後でdate値に変換する文字列として渡されます。array_multisort今日の日付に最も近い値で並べ替え

foreach($matchLists as $matchList) 
{ 

    $fixtures[] = $matchList['matchDate']; 

} 

array_multisort($fixtures, SORT_DESC, $matchLists); 


$newlist = array(); 

    foreach($matchLists as $key => $matchitem) 

{ 
    if(array_key_exists('matchDate', $matchitem)) 
    { 

     $newlist[$matchitem['matchDate']][$key] = ($matchitem); 

    } 


} 
    foreach($newlist as $key => $value) 
    { 
     $fixtureDate = date('D j M Y ga', strtotime($key)); 
     } 

答えて

0

はい、ここに私のprevious answer on SO:

<?php  
$events = array(
    'event1' => array(
     'event_name' => 'Title for Event 1', 
     'event_date' => '2017-11-1' 
    ), 
    'event3' => array(
     'event_name' => 'Title for Event 1', 
     'event_date' => '2017-10-13' 
    ), 
    'event4' => array(
     'event_name' => 'Title for Event 1', 
     'event_date' => '2017-11-10' 
    ), 
    'event2' => array(
     'event_name' => 'Title for Event 1', 
     'event_date' => '2017-10-22' 
    ), 
); 

function date_compare($a, $b) 
{ 
    // note that the variables are calling for the date part of the array 
    // if you are using assoc array from mysql just change the value 
    // to your row name 
    $t1 = strtotime($a['event_date']); 
    $t2 = strtotime($b['event_date']); 
    return $t1 - $t2; 
}  
usort($events, 'date_compare'); 
print_r($events); 

の1を見てみましょうあなたが日付に基づいて配列をソートするdate_compare機能し、その後usortを作成し、日付の配列を持っています。

希望これは

+0

おかげで、これはそれが今、少なくともあなたも多分今日もに最も近い日付を選択するために、機能を変更し、可能 – rmsGreig

+0

のにずっと整然と最初の最も早い日付、ものの正しい日付順に表示しているのに役立ちます過去の日付を削除する – Samuel

関連する問題