на первой итерации перед foreach $startCount = 0; мне нужно чтоб начиная со второй итерации reduce переменная $startCount имела значение $result; возможно такое реализовать? А то она же $startCount; обнуляется каждый раз....
Вы делаете что-то странное.
Результат предыдущей итерации содержится в $carry.
Результат текущей итерации нужно вернуть при помощи return
Зачем вам $startCount?