Sitego, лучше будет заменить пару лишних вызовов функций на обычную проверку:
if (empty($temp)) {
// Тут ты получаешь свои данные удобным для тебя способом,
// и сохраняешь их в переменной $temp
$temp = $твой_массив;
} Остальной код останется без изменений. ... А то получается, что ты хотел сделать меньше обращений к файловой системе, а в итоге дописал ещё два вызова, гг