MSSQL 将多行返回到数组中,每行分解为一个数组

Posted

技术标签:

【中文标题】MSSQL 将多行返回到数组中,每行分解为一个数组【英文标题】:MSSQL returns multiple rows into array, explode into one array per row 【发布时间】:2013-02-27 08:49:57 【问题描述】:

我有一个 MSSQL 查询,它选择满足特定条件的所有行。在 php 中,我想获取该数组,但随后我想将其转换为每行一个数组。因此,如果我的查询返回 3 行,我希望有 3 个可以使用的唯一数组。

我不知道该怎么做。任何帮助将不胜感激!

谢谢,内森


编辑:

$query = "SELECT * FROM applicants WHERE applicants.user_id ='$_SESSION['user_id']'";
$query_select = mssql_query($query , $connection);
if (mssql_num_rows($query_select) == 2)
      $message = '2 students created successfully';


$i = 0;
while($row = mssql_fetch_array($query_select)) 
    $student.$i['child_fname'][$i] = $row['child_fname']; 
        $student.$i['child_lname'][$i] = $row['child_lname'];
    $i++;

    $query_array1 = $student0;
$query_array2 = $student1;

您会从上面的代码中注意到,我期望返回两行。现在,我想取这两行并从结果中创建两个数组。我尝试使用下面给出的解决方案。也许我的语法不正确,或者我不明白如何正确实施他的解决方案。但任何帮助将不胜感激。

【问题讨论】:

我猜你可以copy the array object 并删除你不需要的行...但是为什么不直接引用index of the different rows? 我需要返回所有行,但我需要将它们作为单独的数组使用,而不是作为一个大数组。 【参考方案1】:
$query = mssql_query('SELECT * FROM mytable');
$result = array();
if (mssql_num_rows($query)) 
    while ($row = mssql_fetch_assoc($query)) 
        $result[] = $row;
    


mssql_free_result($query);

现在您可以随意使用数组了:

print_r($result[0]); //first row
print_r($result[1]); //second row
...

【讨论】:

“我需要将它们作为单独的数组使用”是什么意思?你需要 $r1; $r2; ... 数组? 老兄,效果很好!非常感谢您的解决方案。 我将如何拆分 assoc.数组转换成单独的数组? 在 PHP 中你只能创建动态变量作为类属性,所以如果真的需要它,你应该创建类并存储结果,创建 getter 方法和结果将像: $result->row1; $结果->行2;但是你需要这个做什么?【参考方案2】:
$i=0;
while( $row = mysql_fetch_array(query)
   $field1['Namefield1'][$i] = $row['Namefield1']; 
   $field2['Namefield2'][$i] = $row['Namefield2']; 
   $field3['Namefield3'][$i] = $row['Namefield3'];
   $i++;

或者如果你喜欢二维数组:

$i=0;
while( $row = mysql_fetch_array(query)
   $result['Namefield1'][$i] = $row['Namefield1'];
   $result['Namefield2'][$i] = $row['Namefield2'];
   $result['Namefield3'][$i] = $row['Namefield3'];
   $i++

【讨论】:

以上是关于MSSQL 将多行返回到数组中,每行分解为一个数组的主要内容,如果未能解决你的问题,请参考以下文章

将每行从整数列表转换为整数数组?

返回一个二维整数数组中最大联通子数组的和

使用 MySqli 和数组返回多行

二维数组最大子数组(结对开发)

二维数组最大子数组(结对开发)

将字符串分解为没有空元素的数组?