[英]Converting associative POST data input into a serialized array
我正在使用一種形式的多維數組,我想將這些值解析為序列化數組以存儲在數據庫中。 這是我的HTML表單的相關部分:
<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'=>'');
然后,我將serialize()此數組存儲在數據庫中。 如何將多維數組輸入轉換為數組以進行序列化?
當您以表格形式提交時,您將獲得一個$_POST['week_days']
,它等於問題中的數組
這是一些示例代碼演示:
<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";}
好吧,如果我對您的理解正確的話,真的很簡單:
$serialized = serialize ( $_POST['week_days'] );
會做你想要的...
也就是說,有幾點注意事項:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.