【发布时间】:2014-05-17 22:35:12
【问题描述】:
我在正确迭代多维数组时遇到问题我正在尝试检索每个井的值..值。
我的问题是我似乎在一个数组中有一个数组,其中每个键/对值都有一个数组,我不确定如何遍历这些数组并将每个数组的值添加到数据库中。
例如,如果我的页面上有一个表单,则数组返回低于,再往下是两个表单返回的内容等
Array
(
[0] => Array
(
[0] => Array
(
[name] => sl_propid
[value] => 21
)
[1] => Array
(
[name] => sl_date
[value] => 04/01/2014
)
[2] => Array
(
[name] => sl_ref
[value] => Form1
)
[3] => Array
(
[name] => sl_nom_id
[value] => 12
)
[4] => Array
(
[name] => sl_desc
[value] => Form1
)
[5] => Array
(
[name] => sl_vat
[value] => 60
)
[6] => Array
(
[name] => sl_net
[value] => 999
)
)
)
我的问题是如何遍历返回的数组,无论它的大小,并拉回每个值?
我尝试过嵌套 foreach 循环,这确实给了我结果,但只针对一个键/值对,这让我相信我做错了循环,我可以检索值,如果我是静态访问的,正常情况下当然没用。
foreach ($result as $array) {
print_r($array);
}
上面的 foreach 返回上面的数组,添加另一个 foreach 删除了“容器”数组,但添加了另一个 foreach 循环,只返回一个键/值对,这种排序是有意义的,因为第一个索引也是一个数组,希望我没有像我自己一样混淆其他所有人:。
感谢您的阅读 任何帮助表示赞赏。
编辑使用下面的数组遍历递归我得到输出
$result = $this->input->post();
function test_print($item, $key)
{
echo "$key holds $item\n";
//$this->SalesLedgerModel->addInvoiceToLedger($key, $key, $key, $key, $key, $key, $key);
}
array_walk_recursive($result, 'test_print');
}
这几乎是我想要的,但是我如何获取每个单独的值并将其添加到我的 ModelFunction(以实际将数据输入到 DB)
该函数有 7 个参数,但我不确定如何确保正确的信息传递给正确的参数
$this->SalesLedgerModel->addInvoiceToLedger($propid, $date, $ref, $nomid, $desc, $vat, $net);
我的控制器功能
function addInvoiceToLedger(){
$this->load->model('SalesLedgerModel');
// $propid = $this->input->post('propid');
// $date = $this->input->post('date');
// $ref = $this->input->post('ref');
// $nomid = $this->input->post('id');
// $desc = $this->input->post('desc');
// $vat = $this->input->post('vat');
// $net = $this->input->post('sl_net');
$results = $this->input->post();
//var_dump($results);
$size1 = sizeof($results)-1;
for($i=0; $i<=$size1; $i++)
{
$size2 = sizeof($results[$i])-1;
for($j=0; $j<=$size2; $j++)
{
$name = $results[$i][$j]['name'];
$value = $results[$i][$j]['value'];
echo $value . "\n" ;
$this->SalesLedgerModel->addInvoiceToLedger($value, $value, $value, $value, $value, $value, $value);
}
}
我的模型函数
function addInvoiceToLedger($propid, $date, $ref, $nomid, $desc, $vat, $net){
$data = array('sl_prop_id' => $propid, 'sl_date' => $date,
'sl_ref' => $ref, 'sl_nominal_sub' => $nomid, 'sl_invoice_desc' => $desc, 'sl_vat' => $vat, 'sl_amount' => $net);
$this->db->insert('salesledger', $data);
}
【问题讨论】:
标签: php arrays codeigniter multidimensional-array foreach