0

我目前正在使用 wordpress。我需要能够保存帖子元数据,并在以后更新它,而不会覆盖以前存储的内容。

我想出了这个快速的解决方案:

    $ref = get_post_meta($post->ID, 'page_ref', true );
update_post_meta($post->ID,'page_ref',array($ref,$newdata));

所以基本上我正在获取当前数据,将其存储在一个数组中,然后将 $newdata 添加到数组中。这很好用,并且像这样存储在数据库中:

a:2:{i:0;a:2:{i:0;s:0:"";i:1;s:34:"data1";}i:1;s:22:"data2";}

然后当我像这样循环遍历数组时:

foreach ($ref as $i){

    echo $i;
}

我得到以下结果:

Arraydata2

我不确定数组是否正确存储,也不完全确定为什么返回的数据只显示数组的最新条目?

任何帮助将不胜感激

4

1 回答 1

2

这是序列化数据,您可以使用非序列化 方法(函数)获取此数据

      $serialized = 'a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:6:"orange";}';
        var_dump(unserialize($serialized));

输出:

    Array
    (
        [0] => apple
        [1] => banana
        [2] => orange
    )

<?php echo var_dump(
unserialize('a:2:{i:0;a:2:{i:0;s:0:"";i:1;s:34:"data1";}i:1;s:22:"data2";}')
); ?>
output
bool(false) 

<?php $datas = unserialize(
'a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:6:"orange";}'
); 

                    foreach($datas as $key => $val)
                    {
                        echo $val;
                    }



      ?>

输出

applebananaorange 
于 2013-10-21T13:53:00.530 回答