Quote:
what does the "< <( )" syntax mean in Bash?

Process substitution.

So "foo < <(someCommands)" means, first run "someCommands" in a subshell, capture the output in a temporary file, and then substitute the name of that temporary file back into the original command and run that. So in this case it would be equivalent to:

someCommands > tempFile
foo < tempFile
rm tempFile

Nine times out of ten you'd just write that as "someCommands | foo"... but using a pipe means executing foo in a subshell, and in the specific case of "foo" being readarray or read, you need the readarray or read to execute in the current shell, not a subshell, so that subsequent commands in the same shell can use the shell-variables it sets up.

Peter