ls may be aliased. It often is. To be sure of getting the standard command use /bin/ls or \ls.
ls lists files across the page. To get one per line use ls -1 (that's a number 1).
The robust way to read file names into shell variables is detailed here
find . -type f -print0 | while IFS= read -r -d '' filename; do
This can, of course, be adapted to load an array, one member per loop pass.