首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP 7.1 -从sql查询构建关联多维数组

PHP 7.1 -从sql查询构建关联多维数组
EN

Stack Overflow用户
提问于 2017-07-23 15:55:05
回答 2查看 418关注 0票数 0

我有一个sql server表,VATTable如下:

代码语言:javascript
运行
复制
VatCode     |   VATRate     |   Description         |  Active
00              0               VAT Rate 0.00%        1
04              4               VAT Rate 4.00%        1
06              6               VAT Rate 6.00%        1
...
21              21              VAT Rate 21.00%       1
....

使用此查询

代码语言:javascript
运行
复制
$query = "SELECT VatCode, VatRate, Description, 0 as Goods, 0 as eFees, 0 as pFees, 0 as sFees, 0 as VAT, 0 as Total from VATTable where active=1";
$result = sqlsrv_query($conn,$query);

我需要用这样的数据构建一个多维数组,看起来像这样:

代码语言:javascript
运行
复制
$VATTable = array
(
    '04'=> array(
        'VATRate'=>'4',
        'Desc'=>'VAT 4.00%',
        'Goods'=>0,
        'eFees'=>0,
        'pFees'=>0,
        'sFees'=>0,
        'Taxable'=>0,
        'VAT'=>0,
        'Total'=>0          
    ),
    '06'=> array(
        'VATRate'=>'06',
        'Desc'=>'VAT 6.00%',
        'Goods'=>0,
        'eFees'=>0,
        'pFees'=>0,
        'sFees'=>0,
        'Taxable'=>0,
        'VAT'=>0,
        'Total'=>0          
    ),
    '10'=> array(
        'VATRate'=>'10',
        'Desc'=>'VAT 10.00%',
        'Goods'=>0,
        'eFees'=>0,
        'pFees'=>0,
        'sFees'=>0,
        'Taxable'=>0,
        'VAT'=>0,
        'Total'=>0          
    )
);

因此,为了能够通过以下方式来管理它:

代码语言:javascript
运行
复制
$vatCode='10';
$VATTable[$vatCode]['Goods']=15;
echo $VATTable[$vatCode]['Desc'].': '.$VATTable[$vatCode]['Goods'];

虽然我的VATTable知识很差,但我想我必须先构建内部数组,然后使用array_push添加到php数组中,但是在寻找这样的解决方案时,我发现了一些我理解(??)的示例。也许这可以在获取记录集的时候完成,我想我可以这样做:$VATTable = array();

代码语言:javascript
运行
复制
while($row = sqlsrv_fetch_array($result))
{
   $VATTable[$row['VATCode']]['VATRate']=$row['VATRate'];
   $VATTable[$row['VATCode']]['Desc']=$row['Description'];
   $VATTable[$row['VATCode']]['Goods']=$row['Goods'];
};

但它不起作用。

能给出解决方案吗?

谢谢

EN

Stack Overflow用户

发布于 2017-07-23 16:05:55

代码语言:javascript
运行
复制
while($row = sqlsrv_fetch_array($result))
{
      $tempVariable = array (
        'VATRate'=>$row['VATRate'],
        'Desc'   =>$row['Description'],
        'Goods'  =>$row['Goods'],
        'eFees'  =>$row['eFees'],
        'pFees'  =>$row['pFees'],
        'sFees'  =>$row['sFees'],
        'Taxable'=>$row['Taxable'],
        'VAT'    =>$row['VAT'],
        'Total'  =>$row['Total']  
     ); 
 $VATTable[$row['VatCode']] = $tempVariable;
};

现在$VATTable包含了您的多维数组

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45262796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档