Problem 1:
In your example, read isdoes not get its input from a standalone command-- it is built into bash (check the man pages for both) line argument, but from stdin. As such, the input it receives does not go through the standardbash's string parser. Instead, it is treated as a literal string, delimited by spaces. So with your input, your array values become:
[0]->("apple
[1]->fruit"
[2]->"orange"
[3]->"grapes"
To do what you want, you need to escape any spaces you have, to avoid the delimiter from kicking in. Namely, you must enter the following input after invoking read:
apple\ fruit oranges grapes
Problem 2: In order for read to store the input it receives as an array, you must have an -a switch followed by the array name. So you need:
read -a myarray -p "Enter your items"