2012-07-23 117 views
1

我有一个PHP表单,其中的字段定义为item[fieldname][],其中字段集合通过Jquery克隆函数重复。将元素插入到PHP多维数组中

这些行作为后交房时

[item] => Array ([itemdate] => Array ([0] => 2012-07-10 20:44:05 [1] => 2012-07-12 20:44:17) 
        [flditmname] => Array ([0] => sdc [1] => sd) 
        [fieldtype] => Array ([0] => 1 [1] => 2) 
        [subscribe] => Array ([0] => X [1] => X) 
     ) 

现在我需要在每个提交(有点像一个交易号)的行插入元素item[id][]以下。我很困惑如何做到这一点。我想到了两种方法:

  1. 找到行数,然后通过迭代添加值。但为此,我面临一个问题,即PHP count函数不会返回正确的值(它将每个数组都计为一个而不是行)。我可以从第一个元素算起,但我不会知道它是因为我的字段是动态填充的。

  2. 某种类型的数组推动,可以遍历行并添加我的元素的值。

在这里寻找专家的帮助,以了解我将如何完成此任务。或者还有什么其他方式可以建议我如何处理标题项目交易过帐,其中每个项目采用标题交易标识的参考以及项目编号(所有字段都动态填充)?结构大致如下:

标题: doc id | field1 | field2 | ...

项目: doc id | line no | field3 | field4 | ...

在发布期间,Doc ID将从数据库中提取为lastno + 1

回答

1

不确定你想要做什么,但会这样的事情不起作用?

foreach ($items as &$item) 
{ 
    $item['id'][] = $id; 
} 

编辑:

$key = key($items); 

foreach ($items[$key] as $item) 
{ 
    $items['id'][] = $id; 
} 
+0

感谢。但是,这将迭代ID 4次(项目数组中的每个元素一个),而我想像其他元素的子节点([0]和[1]这样)只迭代两次。 – Ravi 2012-07-24 16:10:45

+0

更新了我的答案。 – williamvicary 2012-07-25 13:34:03

1
foreach($items as $index => $array) 
{ 
    $items[$index]['id']=$id; 

} 

我知道这是老了,但还是可以帮助别人寻找类似的答案