Array
( [Fixed Assets] => Array
(
[0] => 150
[1] => Array
(
[Equimpent] => Array
(
[0] => Office Computer
[1] => Office Printer
)
)
[2] => Array
(
[Furniture and Fixtures] => Array
(
[0] => Desk
[1] => Desk Chair
)
)
)
)
作为层次结构帐户命名和编号架构,帐号可以从上面的示例数组派生,如下所示......
我的谜题是如何将新帐户的添加编码到给定的数组中 只有所需的新帐户名称及其派生帐号 目标母帐户。
例如......
<?php
//Chart of Accounts
$coa = array('Fixed Asset'=>array(150,array('Equimpent'=>array('computer','printer')),array('Furniture and Fixtures'=>array('desk','chair'))));
//global $coa;
$new_account ="Office File Cabinet";//from ajax post
$target_base_no ="150-2";//from ajax post
//won't know if or how many subkeys will may be included
//but would result in something like...
$coa['unknown_parent_of_acct_no_150'][2][] = $new_account;
?>
我完全被封锁了...... 相反,我想我可能会问...... 如何确定帐户#150-2的帐户名称? 这是上下文中的COA数组。
Array
(
[Cash Bank] => Array
(
[0] => 100
[1] => Checking
[2] => Paypal
[3] => Petty Cash
[4] => Savings
[5] => Deposits Pending
)
[Accounts Receivable] => Array
(
[0] => 110
[1] => AR-AlternaMart
)
[Inventory] => Array
(
[0] => 120
)
[Other Current Assets] => Array
(
[0] => 130
[1] => Pre-Paid Hosting
)
[Fixed Assets] => Array
(
[0] => 150
[1] => Array
(
[Equipment] => Array
(
[0] => Computer
[1] => Printer
)
)
[2] => Array
(
[Furniture And Fixtures] => Array
(
[0] => Desk
[1] => Desk Chair
)
)
)
[Accumulated Depreciation] => Array
(
[0] => 160
[1] => AD-Computer
[2] => AD-Printer
[3] => AD-Desk
[4] => AD-Desk Chair
)
[Accounts Payable] => Array
(
[0] => 200
[1] => AP-Unearned Shipping
)
[Credit Cards Payable] => Array
(
[0] => 210
[1] => Wells Fargo Visa
)
[Sales Tax Payable] => Array
(
[0] => 220
[1] => CO
[2] => 80227
[3] => 80214
[4] => IL
)
[Accrued Payroll Taxes] => Array
(
[0] => 230
)
[Other Current Liabilities] => Array
(
[0] => 240
)
[Loans Payable] => Array
(
[0] => 270
)
[Notes Payable] => Array
(
[0] => 280
)
[Capital] => Array
(
[0] => 300
)
[Drawing] => Array
(
[0] => 320
)
[Sales] => Array
(
[0] => 400
)
[Other Income] => Array
(
[0] => 401
[1] => Shipping
)
[Commissions] => Array
(
[0] => 402
[1] => AlternaMart Commissions
)
[Sales Discounts] => Array
(
[0] => 450
)
[Sales Returns and Allowances] => Array
(
[0] => 451
)
[Shipping Discounts] => Array
(
[0] => 452
)
[Reimbursed Shipping] => Array
(
[0] => 453
)
[Cost of Goods Sold] => Array
(
[0] => 500
[1] => COGS Shipping
)
[Expense] => Array
(
[0] => 600
[1] => BSC Checking
[2] => Paypal Transaction Fees
[3] => Alternamart Transaction Fees
[4] => Commissions Expense
[5] => Interest Expense
[6] => Internet Service
[7] => Web Hosting
[8] => Rent Expense
[9] => Telephone
[10] => Utilities
[11] => Postage
[12] => Office Supplies
[13] => Miscellaneous Supplies
[14] => Advertising
[15] => Salaries And Wages
[16] => Payroll Taxes
[17] => Dues And Subscriptions
[18] => Miscellaneous Expenses
[19] => Legal And Accounting
[20] => Insurance
[21] => Vehicles Expense
[22] => Depreciation Expense
[23] => Travel And Entertainment
[24] => Bad Debt Expense
[25] => Ask Accountant
)
[Ask Accountant] => Array
(
[0] => 900
)
)
答案 0 :(得分:0)
如果我做对了:...
将$target_base_no
拆分为 - $arr = explode('-', $target_base_no)
在$coa
数组中搜索值= 150($ arr [0]),就像这样:
foreach($coa as $row) {
if ($arr[0] == $row[.....]
}
使用第二个分割值($ arr [1])来标识要插入的位置。
已编辑:您应创建一个反向索引数组,以便直接访问正确的值。我们将nummeric值保存为键,将文本值保存为value(可以用作$coa
数组的索引:
$index = array();
foreach($coa as $key => $value) {
$index[$value[0]] = $key;
}
之后您只需访问您的数据$coa[$index[$arr[0]]]
(您应该检查该字段是否存在)