2014-02-21 75 views
0

我正嘗試使用窗體更新關聯數組的特定鍵的值。更新關聯數組的特定鍵的值

這是我的表單外觀:

<form class="wpd_edit_note_322" method="post" action=""> 
<input type="hidden" id="list_note" name="list_note" value="ba222f06db"> 
<p><textarea id="plugn_note" name="plugin_note" placeholder="Note(Optional)" ></textarea></p> 
<p><input class="list_note_id" name="plugin_note_id" type="hidden" value="322"></p> 
<p><input class="list_edit_button" type="submit" value="Save"></p> 

</form> 

,這是我在嘗試更新的關鍵322的價值提出:

if (isset($_POST['list_note']) && wp_verify_nonce($_POST['list_note'],'edit_item_note')) 
    { 


     $add_to_ID = $_POST['plugin_note_id']; 
     $note = $_POST['plugin_note']; 


     $existing_list = Array ( 
    [0] => Array ([320] => This is the plugin that I am using on my site.) 
    [1] => Array ([322] => My Microblog poster bla blah bla.) 
    [2] => Array ([318] =>) 
    ); 
foreach ($existing_list as $k => $v) { 
     $existing_list[$k][$add_to_ID] = $note; 
     } 
} 

我看到$ _ POST值時,我回應出來。所以我猜表單工作正常,但foreach循環無法正常工作。

我還試圖用array_walk_recursive()而不是foreach循環,有沒有用這裏提到: How to change the value of an specific associative array in PHP?

有人能幫助我嗎?

感謝

+0

'$ existing_list'的數組語法不正確。這是你的實際代碼嗎? –

+0

在你的$ existing_list數組中的每一行之後需要逗號 – theB3RV

+0

數組列表實際上是'get_post_meta($ postid,'my_list_items',TRUE)的'print_r'版本'我剛剛添加了打印版本來顯示數組。我應該使用'var_dump'輸出嗎?謝謝。 – Towfiq

回答

1

你的代碼實際上增加了數組($ add_to_ID => $注)到$ existing_list陣列中的每個元素,但它改變了一個與索引322嘗試這樣:

foreach ($existing_list as $key => $value) { 
    if (isset($value[$add_to_ID])) { 
     $existing_list[$key][$add_to_ID] = $note; 
     break; 
    }  
} 
+0

剛剛嘗試過。不工作:( – Towfiq

+0

但是什麼是實際的錯誤? – rocknrollcanneverdie

+0

這就是我沒有得到任何問題.. – Towfiq