将php结果集转换为数组

时间:2011-12-15 04:40:26

标签: php arrays resultset

我正在尝试将php结果集转换为数组(使用foreach),我做得不对..

我有一个结果集:

$result

我正在循环播放如下:(可怕的错误)

while($row = mysql_fetch_array($result)) {

    foreach (mysql_fetch_array($result) as $k => $v) {
      echo "Fred's $k is ". $v['uid']. "\n";
    }

}

我希望这个数组采用以下格式:

Array
(
    [0] => Array    //row1
        (
            [column1] => value
            [column2] => value
            [column3] => value
        .
        .

        )

    [1] => Array    //row2
        (
            [column1] => value
            [column2] => value
            [column3] => value
        .
        .
        )

    [2] => Array    //row3
        (
            [column1] => value
            [column2] => value
            [column3] => value
        .
        .
        )

)

我是新手,请帮忙。

6 个答案:

答案 0 :(得分:6)

    $results = array();
    while($row = mysql_fetch_assoc($result))
    {
        $results[] = $row;
    }

    //$results has all that you need
    print_r($results);

答案 1 :(得分:1)

你不需要foreach这样做,你可以坚持你的while循环:

$result_set = array();

while($row = mysql_fetch_array($result)) {
    $result_set[] = $row;
}

然后你可以像普通数组一样使用它:

$result_set[0]['column_name'];

答案 2 :(得分:0)

我无法理解但是 希望这会对你有所帮助:

$array = array();
while($row = mysql_fetch_array($result)) {
 $array[] = $row['uid'];
}

答案 3 :(得分:0)

试试这个,

while($row = mysql_fetch_assoc($result)) {
   $ar[]=$row;
}

答案 4 :(得分:0)

请尝试mysql_fetch_assoc

$results_array = array();
while($row = mysql_fetch_assoc($result)) {
    $results_array[] = $row;
}

答案 5 :(得分:0)

here 所示,您无需调用提取函数来访问结果集值。

$resultArray = [];
foreach ($resultSetObject as $row) {
    $resultArray[] = $row;
}

假设您的结果集中有行,这将生成关联数组的索引数组。

如果您想选择输出数组中包含哪些列,则可以通过使用关联数组语法来引用数据库表的列名 ($row['column_a']) 来访问它们。

如果你希望所有东西都进入你的数组,那么你可以使用 mysqli 的 fetch_all() 跳过手动循环。