2013-05-21 56 views
0

我正在使用Gravity Forms for WordPress,其中一個表單元素是一個List項目,可以有多個條目。我在網站上建立了一個頁面,可以將該項目的數據輸出到頁面上,但我無法訪問陣列中的實際項目。如何輸出此php數組中的特定元素?

這是我用來檢索數組代碼:

$user_id = $current_user->ID; 
$key = 'my_playlist'; 
$single = false; 

$my_playlist = get_user_meta($user_id, $key, $single); 
print_r(array_values($my_playlist)); 

我從這個得到的輸出是這樣的:

Array ([0] => a:2:{i:0;a:2:{s:10:"Song Title";s:15:"test song title";s:11:"Song Artist";s:16:"test song artist";}i:1;a:2:{s:10:"Song Title";s:11:"test song 2";s:11:"Song Artist";s:13:"test artist 2";}}) 

到目前爲止,我曾經試圖訪問喜歡的元素這樣的:

foreach($my_playlist as $item){ 
    echo 'Item: ' . $item[0] . '<br />'; 
} 

但它只輸出Item: a

我想它輸出,如:

歌名:測試歌名歌曲藝術家:測試歌曲演唱者

歌名:測試的歌2 歌曲藝術家:測試藝術家2

如何訪問此數組中的每個元素?另外,這是什麼類型的數組?它可以幫助我追蹤如何訪問所需的項目。

+0

請看看這個:http://codex.wordpress.org/Function_Reference/get_option –

+1

看起來像序列化的數據,所以在訪問值之前使用'unserialize'。 – CBroe

+0

感謝@Jules的鏈接,但我需要訪問的表是這一個http://codex.wordpress.org/Function_Reference/get_user_meta – ObstacleCoder

回答

3

你必須unserialize您的數組:

$my_wake_playlist = unserialize($my_wake_playlist); 

,你就會有你的PHP陣列回來。

+0

謝謝,這節省了我大量的時間。爲了讓它在我的情況下序列化數組,我不得不使用my_wake_playlist = unserialize($ my_wake_playlist [0]); – ObstacleCoder

2

此字符串:

a:2:{i:0;a:2:{s:10:"Song Title";s:15:"test song title";s:11:"Song Artist";s:16:"test song artist";}i:1;a:2:{s:10:"Song Title";s:11:"test song 2";s:11:"Song Artist";s:13:"test artist 2" 

被序列化。使用反序列化函數來解碼它。

+0

感謝您的回答。它指出我在正確的方向。 – ObstacleCoder

相關問題