ну так на вскидку, решение в лоб:
$nullFlag = true;
if($time > 12:00 && < 13:00 && $nullFlag) {
//обнуляем массив
$nullFlag = false;
} elseif ($time > 13:00) {
$nullFlag = true;
}
но это прям такое, топорное решение (код - условный, иллюстрирует исключительно идею).
Можно ещё создавать файл на диске где-то, по cron'у (раз в сутки) и делать например так:
$file_path = "/home/daemon/clear_array.do";
if(file_exists($file_path)) {
//Очивщаем массив
unlink($file_path);
}
Основная проблема в том, что я не могу придумать так вот сходу, как расшарить данные во вне, с работающего нон-стоп скрипта, на PHP. Это всё-таки не С++...
Ещё можно попробовать хранить этот массив в Redis, или memcached, и вычищать его оттуда раз в сутки, и при каждой необходимости - считывать его (массив) оттуда. Или сериализовывать его и сохранять на диск.
Если кто-то подскажет, как кусок памяти на ПХП расшарить, я думаю, будет более оптимальное решение.
Можно ещё попробовать вебсокет на ПХП открыть, и при поступлении соотв. команды - очищать массив. Но я сам веб-сокеты в ПХП-реализации не пробовал и не могу к сожалению, подсказать Вам, как это будет выглядеть.
P.S. Реализацию с файлом, можно заменить на запись в БД или в Redis/Memcached. Т.е. проверять не наличие файла, а наличие записи. Кстати да, Redis имеет такой параметр как "срок хранения кэша", в этом случае, даже CRON будет не нужен. Наверняка, что-то такое и в memcached есть.