簡體   English   中英

將相關的POST數據輸入轉換為序列化數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM