Вот он, ваш
$arr[2]
А функция внутри себя что-то делает, но результат не возвращает же. Давайте я угадаю, первым языком у вас был js, а теперь вы внезапно обнаруживаете, что замыкания есть не во всех языках, и даже если они есть, то работают не совсем так.
Замыкания в php есть, но они не применяются к каждой функции автоматически, как в js, и если вам они действительно нужны, придется делать это самостоятельно, как-то так:
https://ideone.com/HvsrC2
И вообще, в таких простых случаях проще передать массив как параметр:
https://ideone.com/JMIntQ
А еще лучше так:
https://ideone.com/aWaK70
В таком случае более явно видно, что функция изменит массив $arr.