2011-07-25 79 views
1

我在表單中使用多維數組,並且我想將這些值解析爲序列化數組以存儲在我的數據庫中。這裏是我的HTML表格的相關部分:將關聯POST數據輸入轉換爲序列化數組

<select name="week_days[monday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 
<select name="week_days[tuesday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 
<select name="week_days[wednesday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 
<select name="week_days[thursday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 

我想然後在我的模型中創建一個名爲week_days的數組。什麼我想要的陣列看起來像一個例子是這樣的:

array('monday'=>'preferred','tuesday'=>'','wednesday'=>'restricted','thursday'=>'');

我會再序列化()這個數組存儲在我的數據庫。如何將多維數組輸入轉換爲序列化數組?

+1

這不是一個多維數組。它是一個簡單的關聯一個rray ..? –

回答

5

當您提交這個窗體中,你會得到一個$_POST['week_days']這將等於數組中你的問題

+1

那真是太簡單了......謝謝。 – hohner

+0

@Jamie - 沒問題^ _ ^ – Neal

2

嗯......很簡單真的,如果我理解正確的話你:

$serialized = serialize ($_POST['week_days']); 

會做你想要什麼......

這就是說,有兩點要注意:

  • 你可能想使您存儲的天新表,並有一個布爾列首選或不
  • 這不是一個多維數組,但關聯數組=)
3

下面是一些示例代碼來演示:

<pre><?php 

if ($_POST['week_days']) { 
    print_r($_POST); 
    print_r(serialize($_POST['week_days'])); 
} 

?></pre> 
<form method="post"> 
<select name="week_days[monday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 
<select name="week_days[tuesday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 
<select name="week_days[wednesday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 
<select name="week_days[thursday]"><option value=""></option><option value="preferred">Preferred</option><option value="restricted">Restricted</option></select> 
<input type="submit"/> 
</form> 

其輸出(基於選中後什麼):

Array 
(
    [week_days] => Array 
     (
      [monday] => preferred 
      [tuesday] => restricted 
      [wednesday] => restricted 
      [thursday] => preferred 
     ) 

) 
a:4:{s:6:"monday";s:9:"preferred";s:7:"tuesday";s:10:"restricted";s:9:"wednesday";s:10:"restricted";s:8:"thursday";s:9:"preferred";}