如何输出这个php数组中的特定元素?

时间:2013-05-21 12:03:08

标签: php arrays wordpress gravity-forms-plugin

我正在使用Gravity Forms for WordPress,其中一个表单元素是一个可以有多个条目的List项。我在网站上有一个页面,它将把这个项目的数据输出到页面上,但是我无法从数组中访问实际的项目。

这是我用来检索数组的代码:

$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

如何访问此数组中的每个元素?此外,这是什么类型的阵列?它可能有助于我找到如何访问所需的项目。

2 个答案:

答案 0 :(得分:3)

你必须unserialize你的阵列:

$my_wake_playlist = unserialize($my_wake_playlist);

你将恢复你的PHP数组。

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

已序列化。使用unserialize函数对其进行解码。