2012-03-13 2 views
1

У меня есть строка времени от 0 до 24, как этогополучить каждый 4-й часа

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 

Теперь, если это 2 Oclock, я хочу, чтобы выбрать каждый 4-й часа. поэтому сверху будет

2, 6, 10, 14, 18, 22 

Я пытаюсь обернуть мою голову вокруг него, чтобы получить это происходит благодаря

Я попытался это

if(range($hour, 23, 4)){ 
    print_r($hour);echo '<br />'; 
} 

, но он по-прежнему печатает все часы в этом массиве

EDIT вот код

$hourlyData->hour только час цифра, как 0 или 1 или 2 и т.д. Шифрование до 23

foreach($jason->hours as $hourlyData){ 
    if(range($hourlyData->hour, 23, 3)){ 
     // print here to check if the correct time is used 
     print_r($hourlyData->hour);echo '<br />'; 
    } 
} 

ответ

8

Зачем использовать «строку времени» для этого? Он встроен. Для массива:

$hours = range(2, 23, 4); // get every 4th hour starting from 2 

И для строки:

$str = implode(', ', range(2, 23, 4)); 

Наконец, чтобы разблокировать волшебное достижение элиминации номер:

define('HOURS_IN_DAY', 24); 
$str = implode(', ', range(2, HOURS_IN_DAY - 1, 4)); 
+0

хорошо, но что, если я проверяю массив, который имеет число ... так что мой код является чем-то вроде foreach ($ hour as $ hourlyData) { \t \t \t \t \t, если (диапазон ($ hourlyData-> час, 23, 3)) { \t \t \t print_r ($ hourlyData-> час); эхо '
'; \t \t \t \t \t \t} \t \t \t \t \t \t \t \t} – Autolycus

+0

но выше не работает – Autolycus

+0

@Autolycus: Этот код не имеет смысла. Пожалуйста, отредактируйте вопрос с дополнительной информацией о том, что * точно * вы делаете. – Jon

Смежные вопросы