PHP从数据库填充两个维度数组

时间:2018-11-01 18:24:24

标签: php sql arrays multidimensional-array

我试图将数据从数据库添加到二维数组中。 但是总是有最后的记录。该数组在每个新记录中重新声明。这是一个愚蠢的问题,但如何声明数组onile循环?谢谢

   while ( $rq  = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC)) {
   $cars1=array
    (
      array($rq['Car'],"Ordered"=>$rq['Order'],"Sold"=>$rq['Sold'])
     );
    };

3 个答案:

答案 0 :(得分:1)

在循环之前将$cars1初始化为一个空数组,否则,如果查询未返回任何行,则稍后再引用时将是不确定的。

$cars1 = [];

然后将获取的行添加到循环中。

while ($rq  = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
   $cars1[] = [$rq['Car'], "Ordered" => $rq['Order'], "Sold" => $rq['Sold']];
}

答案 1 :(得分:1)

您可以更改SQL以返回正确元素中的字段,例如

select Car, Order as Ordered, Sold
   ...

然后您可以直接分配数组(使用[])以将其添加到列表中...

   $cars1 = array();
   while ( $cars1[]  = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC));

在MySQL中,有fetch_all不确定SQL Server中是否有一个。

答案 2 :(得分:-1)

在创建$ cars1数组时应使用append,这样循环内的最终代码应类似于:

$cars1[]=array (
   array($rq['Car'],"Ordered"=>$rq['Order'],"Sold"=>$rq['Sold']),
);