2016-10-14 7 views
0

私は時間を見積もるための関数を書いています。すなわち、時間に応じて特定のイベントを実行します...私は初めてその最初を実行する必要があります二時間未満の場合には一致している必要があります回時刻を確認し、その時刻に従ってプログラムを実行する機能。

$times = array(
    '00:00' => 'Programme 1', 
    '00:30' => 'Programme 2', 
    '01:00' => 'Programme 3', 
    '01:30' => 'Programme 4', 
    '02:00' => 'Programme 5', 
    '02:30' => 'Programme 6', 
    '03:00' => 'Programme 7', 
    '03:30' => 'Programme 8', 
    '04:00' => 'Programme 9', 
    '04:30' => 'Programme 10', 
    '05:00' => 'Programme 10', 
); 

と機能

echo (currently_should_play("00:05", $times) === 'Programme 1' ? 'Ok 1' : 'Not Ok 1') . PHP_EOL; 

の配列を持っていると仮定そして「OK」でも...

上位関数呼び出しは00:00プリントと一致する必要があり、その実行より正確な値とその等しい

場合は、のは、別のexampを想定してみましょうプログラム2 ...

との試合は

My機能コードiがキーと値を取得するここ..ですいくつかの解決策をアドバイスしてくださいので、そのが第2の値と一致しなければなりませんル

echo (currently_should_play("00:58", $time) === 'Programme 2' ? 'Ok 2' : 'Not Ok 2') . PHP_EOL; 

私はそのショーオフセット誤差をはsizeofするように変更したときに、配列から

function currently_should_play($current_time, array $times) { 
    foreach ($times as $time => $programme) { 
    echo $time; 
    echo $programme."<br/>"; 

    } 
} 

答えて

0
function currently_should_play($current_time, array $times) { 
    $s=size($times); 
    while($s-->0){ 
    if($times[$s]==$current_time){ 
    return $times[$s]; 
    }elseif($times[$s-1]==$current_time){ 
    return $times[$s-1]; 
    }elseif($times[$s-1]<$current_time&&$times[$s]>$current_time){ 
    return $times[$s-1]; 
    } 
} 
return false; 
} 
+0

そのサイズが定義されていないと言う.... Yをしましたあなたのために試してみませんか? – user3032590

関連する問題