Странно вот что. Если возвращать из ARRPOP() в переменную - $tmp = ARRPOP($arr), то код перестает работать как задумано.
дело тут совсем не в ARRPOP(). он всегда работал и работает как задумывалось.
тут дело в неправильном условии цикла for. ($i>ARRSIZE($arr)-($count+1)) - а никто не заметил, что количество элементов массива постоянно уменьшается? нужно ведь отталкивакться от первоначального значения количества элементов. в данном случае это $a. правильно - ($i>$a-($count+1))
Спасибо.
Еще раз убеждаюсь что КМ не ошибается, а ошибается сам пользователь. Условие проверить я почему-то не посчитал нужным, несогласен был только с записью ARRPOP(). Вечером попробую всё это осмыслить..., сейчас нет времени.