Your solution to getting the proper results by looping over the query and accumulating the values in an array seems like it would work.
If you wanted to store the multiple news article value on a per store basis that is fine, but to search them more effectively you should have your news articles in a table with a single record per article. Then rather than trying to store all of the values in single string to relate them you should have a lookup table. This table would have an id column then it would have an article id and a store id. You could then use this table to relate the stores to the articles and query by using a join.