seralize多维数组

时间:2016-02-17 01:42:04

标签: php arrays wordpress multidimensional-array

我的数据库中有以下值:

a:2:{s:4:"ques";a:2:{i:0;i:15;i:1;i:17;}s:5:"marks";a:2:{i:0;s:1:"2";i:1;s:1:"2";}}

我尝试执行以下操作以将值传入我的数据库:

$question["ques"] = '15';
$question["ques"] = '17';
$question["marks"] = '1';
$question["marks"] = '1';

$questions = serialize($question);
update_post_meta($quiz_id, 'quiz_questions1', $questions);

这不会正确更新数据库。我使用它的输出如下:

a:2:{s:4:"ques";s:2:"17";s:5:"marks";s:1:"1";}

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:3)

如果你有一个序列化的数据结构,那么理解它的最简单的方法是反序列化它,并用print_r()向你自己显示。

<?php
$s = 'a:2:{s:4:"ques";a:2:{i:0;i:15;i:1;i:17;}s:5:"marks";a:2:{i:0;s:1:"2";i:1;s:1:"2";}}';

$array = unserialize($s);
print_r($array);

将显示

Array
(
    [ques] => Array
        (
            [0] => 15
            [1] => 17
        )

    [marks] => Array
        (
            [0] => 2
            [1] => 2
        )
)

所以现在你只需要用新数据复制那个结构

$array = array();
$array['ques'] = array(15, 17);
$array['marks'] = array('1', '1');

// take a look to check
print_r($array);

// and if it is good. Serialize it and store it on the database
$questions = serialize($array);
update_post_meta($quiz_id, 'quiz_questions1', $questions);