Search code examples
phpmysqlarraysflatten

Create flat array of individual values from rows of comma-separated values fetched from a database table


Please help me to create an array from a field of my DB. That field has records separated by comma. Below is the illustration:

ID | article_title_fld         | article_tags_fld                     |
----------------------------------------------------------------------
1  | Learn PHP                 | PHP, coding, scripting               |
3  | Javascript Tutorial       | Javascript, scripting, tutorial      |
4  | Styling with CSS          | CSS, tutorial, web design            |

I want to collect all records in the article_tags_fld then put it into 1 array. Perhaps I named it $array1, and the print out as below:

Array
(
[0] => PHP
[1] => coding
[2] => scripting
[3] => Javascript
[4] => scripting
[5] => tutorial
[6] => CSS
[7] => tutorial
[8] => web design
)

Solution

  • $array1 = array();
    $result = mysql_query("SELECT article_tags_fld FROM MY_TABLE");
    while ($row = mysql_fetch_assoc($result)) {
       $array1 = array_merge($array1, array_map('trim', explode(",", $row['article_tags_fld'])));
    }
    

    explode will split a string by a delimiter.

    array_merge will combine two arrays.

    array_map will apply trim to all elements.

    trim will remove any white space on either side of your tags.