2010-11-19 17 views
0

Bir datetime ve bir olaydan oluşan aşağıdaki diziye sahibim. Bir sonraki olayı bugünkü tarihten iade etmek istiyorum. Örn: Bugünün tarihi 2010-11-19 ise, 'Futbol Maçı' iade edilir.Bir sonraki olayı bir dizi olayda bulmak

Bu sonuca ulaşmanın en iyi yolu nedir?

Çok teşekkürler.

Array(
    [1] => Array 
     (
      [start] => 20101113T100000Z 
      [event] => Fishing at the Pond 
     ) 

    ... etc ... 

    [29] => Array 
     (
      [start] => 20101125T150000Z 
      [event] => Football Match 
     ) 
) 
+0

Ve dizinin tüm konumları olay değil midir? Olayları başka bir şeyden nasıl ayırt edersiniz? – acm

cevap

0
$date = '2010-11-19'; 

$next = $array[0]; 
foreach ($array as $item) 
    if (strtotime($date) < strtotime($item['start']) && strtotime($date) > strtotime($next['start'])) $next = $item; 

echo $next['event']; 
+0

Teşekkürler Axelcoon, basit bir cevap olduğunu biliyordum –

2

Veri saatinizi dizininizin anahtarı olarak neden yerleştirmiyorsunuz? Sadece 2 değeriniz olduğu için çok daha kolay olurdu.

Array(
[20101113T100000Z] => Fishing at the Pond 
[20101125T150000Z] => Football Match 
) 

Sonra foreach ile, bugünün tarihiyle her bir değeri test etmek ve istediğini bulduğunda durur.

İlgili konular