You can use the C-style for loop:
for (( idx=${#MYARRAY[@]}-1 ; idx>=0 ; idx-- )) ; do
echo "${MYARRAY[idx]}"
done
For an array with “holes”, the number of elements ${#arr[@]} doesn’t correspond to the index of the last element. You can create another array of indices and walk it backwards in the same way:
#! /bin/bash
arr[2]=a
arr[7]=b
echo ${#arr[@]} # only 2!!
indices=( ${!arr[@]} )
for ((i=${#indices[@]} - 1; i >= 0; i--)) ; do
echo "${arr[indices[i]]}"
done