【问题标题】:Convert a php resultset into an array将 php 结果集转换为数组
【发布时间】:2012-01-20 20:38:02
【问题描述】:

我正在尝试将 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
        .
        .
        )

)

我是新手,请帮忙。

【问题讨论】:

  • 你也应该停止使用 mysql_ 函数。他们很老了。最好使用 mysqli 或 PDO。

标签: php arrays resultset


【解决方案1】:

我不太明白,但是 希望这会对你有所帮助:

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

【讨论】:

    【解决方案2】:
        $results = array();
        while($row = mysql_fetch_assoc($result))
        {
            $results[] = $row;
        }
    
        //$results has all that you need
        print_r($results);
    

    【讨论】:

    • 这正是我所需要的......但无论如何,我可以将 print_r 的输出存储到一个变量中,以便我可以对其进行 json_encode 吗?
    • 好吧,如果你的动机是 json_encode 它。你可以 $jsonstr = json_encode($results);检查下面的链接link
    • 或者检查 var_export($results) http://www.php.net/manual/en/function.var-export.php
    【解决方案3】:

    试试这个,

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

    【讨论】:

      【解决方案4】:

      您不需要 foreach 来执行此操作,您可以坚持使用您的 while 循环:

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

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

      $result_set[0]['column_name'];
      

      【讨论】:

        【解决方案5】:

        改用mysql_fetch_assoc

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

        【讨论】:

          【解决方案6】:

          here 所示,您无需调用获取函数即可访问结果集值。

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

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

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

          如果您希望所有内容都进入您的阵列,那么您可以使用 mysqli 的 fetch_all() 跳过手动循环。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-11
            • 2017-05-03
            • 2015-12-13
            • 2013-04-12
            • 2011-08-11
            • 2010-12-13
            相关资源
            最近更新 更多