我目前正在使用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
我不确定数组是否正确存储,并且不完全确定为什么返回的数据只显示数组的最新条目?
非常感谢任何帮助
答案 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