从MySQL列创建PHP数组

从MySQL列创建PHP数组,php,mysql,arrays,Php,Mysql,Arrays,mysql\u fetch\u array将给我一个获取行的数组。从一列中所有行的值生成数组的最佳方法是什么?使用while循环获取记录并将其存储在数组中: $array = array(); while ($row = mysql_fetch_array()) { $array[] = $row['column-x']; } 使用mysql扩展没有任何函数可以执行此操作,您可以执行以下操作: $result = array(); while ($row = mysql_fetch_a

mysql\u fetch\u array
将给我一个获取行的数组。从一列中所有行的值生成数组的最佳方法是什么?

使用
while
循环获取记录并将其存储在数组中:

$array = array();
while ($row = mysql_fetch_array()) {
    $array[] = $row['column-x'];
}

使用mysql扩展没有任何函数可以执行此操作,您可以执行以下操作:

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

显然,在数字索引数组中获取列的速度要快一些,而使用关联数组格式并没有真正的好处。

您可以在数组中循环,然后创建一个新的数组,如下所示:

$column = array();

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

}

循环浏览结果:

$result = mysql_query(...);
$data = array();
while ($row = mysql_fetch_array($result)) {
    array_push($data, $row["columnyouwant"]);
}
如果不使用php mysql,则PDO::query()的返回值将实现可遍历接口,这意味着您可以使用它,例如与foreach()一起使用(与从mysql_查询获得的mysql结果资源不同)

如果这还不够,您真的需要一个数组(即get_class($x)=='array'),那么就有了这个方法。

$query=mysql_query('SELECT*from yourTable');
函数mysql\u字段\u数组($query){
$field=mysql\u num\u字段($query);
对于($i=0;$i<$field;$i++){
$names[]=mysql\u field\u name($query,$i);
}
返回$names;
}
$fields=mysql\u field\u数组($query);
$output=内爆(“,”,$fields)//输出列名称
//回声计数(字段)//如果需要列的计数,请使用此选项。
$columns='{\'fields\':\”.json\u encode($output)。\“}';
echo$列//用于JSON输出
您可以执行以下操作:

        $columns = array();
        $i=1;
        while( $row = mysql_fetch_array($sql) )
           {
              $columns [$i]=$row['value'];
              $i++;
           }

如果您不需要该表中的其他信息,则可以只查询所需的列,这会使查询变得更加简单:

$query = mysql_query("SELECT * FROM table WHERE id='$int' LIMIT 1");
$column = array();
$column  = mysql_fetch_array($query);

如果上述操作均无效,请尝试:

while( $row = mysqli_fetch_assoc( $result)){
     $array[] = $row['id'];
}

mysql_fetch_assoc is deprecated.

许多年后,只是另一种方式。我不知道它的性能是比while循环方法好还是比while循环方法差

对于不带逗号的值,您可以执行以下操作:

$res = mysql_query("SELECT GROUP_CONCAT(colname) AS values FROM tablename");
$row = mysql_fetch_assoc($res);
$arrOfValues = explode(',', $row['values']);
对于一般解决方案,可以使用分隔符:

$res = mysql_query("SELECT GROUP_CONCAT(colname SEPARATOR '##_sep_##') AS values FROM tablename");
$row = mysql_fetch_assoc($res);
$arrOfValues = explode('##_sep_##', $row['values']);
$query = mysql_query("SELECT * FROM table WHERE id='$int' LIMIT 1");
$column = array();
$column  = mysql_fetch_array($query);
while( $row = mysqli_fetch_assoc( $result)){
     $array[] = $row['id'];
}

mysql_fetch_assoc is deprecated.
$res = mysql_query("SELECT GROUP_CONCAT(colname) AS values FROM tablename");
$row = mysql_fetch_assoc($res);
$arrOfValues = explode(',', $row['values']);
$res = mysql_query("SELECT GROUP_CONCAT(colname SEPARATOR '##_sep_##') AS values FROM tablename");
$row = mysql_fetch_assoc($res);
$arrOfValues = explode('##_sep_##', $row['values']);