Create PHP array from MySQL column


Question

mysql_fetch_array will give me an array of a fetched row. What's the best way generate an array from the values of all rows in one column?

Edit: Lots of great answers. Thank you everyone who replied! I ended up going with a solution similar to what Gumbo and GSto suggested. I gave the answer points to GSto because he has less points (just helping out the little guy, nothing personal).

1
17
10/8/2009 9:21:43 PM

Accepted Answer

you could loop through the array, and create a new one, like so:

$column = array();

while($row = mysql_fetch_array($info)){
    $column[] = $row[$key];
//Edited - added semicolon at the End of line.1st and 4th(prev) line

}
30
9/16/2012 5:38:27 AM

There is no function to do this using the mysql extension, you can do this:

$result = array();
while ($row = mysql_fetch_array($r, MYSQL_NUM)) {
    $result[] = $row[0];
}

It is apparently marginally faster to fetch the columns in a numerically indexed array, and there is no real benefit here to having the associative array format.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon