wordpress post_meta更新数组

时间:2013-10-21 13:49:00

标签: php arrays wordpress

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

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

    $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

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

非常感谢任何帮助

1 个答案:

答案 0 :(得分: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