2012-07-23 115 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; 

} 

我知道這是老了,但還是可以幫助別人尋找類似的答案