【发布时间】:2017-07-23 07:55:05
【问题描述】:
我有一个 sql server 表,像这样的 VATTable:
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
....
用这个查询
$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);
我需要用这些数据构建一个多维数组,如下所示:
$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
)
);
以便能够通过以下方式对其进行管理:
$vatCode='10';
$VATTable[$vatCode]['Goods']=15;
echo $VATTable[$vatCode]['Desc'].': '.$VATTable[$vatCode]['Goods'];
虽然我的 php 知识很差,但我想我必须先构建内部数组,然后使用 array_push 添加到 VATTable 数组,但是在寻找这样的解决方案时, 我找到了一些我理解的示例(??),也许这可以在获取记录集时完成,我认为我可以这样做: $增值税表 = 数组();
while($row = sqlsrv_fetch_array($result))
{
$VATTable[$row['VATCode']]['VATRate']=$row['VATRate'];
$VATTable[$row['VATCode']]['Desc']=$row['Description'];
$VATTable[$row['VATCode']]['Goods']=$row['Goods'];
};
但它不起作用。
可以提出解决方案吗?
谢谢
【问题讨论】:
标签: php arrays sql-server multidimensional-array