API explains why you get that result here. Check the description of deepToString method.
On the other hand, what you want to do is best accomplished using double for loop, in each iteration of inner one you can get one element, and perform whatever you want with it.
The quieter you are, the more you are able to hear.
salvin francis wrote:I disagree, some people are very much at home when thinking from recursion point of view... Some find it even more simpler than looping...
I think it depends on your training. Many people with a strong Maths background find recursion quite straightforward; on the other hand, duffers like me find it quite tough. And since good programmers program not only for themselves, but for the person who has to come after them, I'd say there's an argument for not using recursion unless there's a strong reason for doing so (eg, divide and conquer algorithms).
Isn't it funny how there's always time and money enough to do it WRONG?
I agree with that. There are some problems that are naturally solved with recursion, e.g. quicksort or mergesort algorithm. On the other hand, a task such as printing contents of an array (even a multi dimensional one) implemented recursively would just look more elegant at the expence of efficiency (each time entire frame is pushed onto stack, which consumes both time and memory) and that's not the thing you would want to waste for such trivial tasks.