Не понял к чему такая конструкция:
for ($i = $elem; $i < sizeof($array)-$elem-1; $i++)
Если, например $elem = 6, a sizeof($array) = 10, то sizeof($array)-$elem-1 = 10-6-1 = 3, значит цикл for не будет иметь итераций.
Мб функция shift, должна выглядеть так:
function shift($array, $elem)
{
$array[$elem] += 1 * 24 * 3600;
return $array;
}
+ ко всему, даже если в массиве не будет найдено дат с воскр., то в функцию insert будет передан $resultNew, который не существует, т.к. он создается, если есть даты с воскр. перередавай в нее просто $result
+ зачем функция reCall если вместо нее можно вызывать checkSunday($resultNew)