2013-10-21 85 views
0

我目前正在使用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 

我不知道數組是否正確存儲,並不完全確定爲什麼返回的數據只顯示數組的最新條目?

任何幫助,將不勝感激

回答

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 
+0

如何將我然後提取數據列出陣列的項目? – danyo

+0

也是我說的wordpress處理序列化和反序列化你嗎? – danyo