数组到字符串到数组的转换

时间:2013-02-16 13:17:33

标签: php mysql arrays string laravel-3

我有一个数组,我将其作为字符串存储在数据库中,以便于检索(通过cron每15-30分钟刷新一次新数据)。

'player_list' -> 'Bob,Dave,Jane,Gordy'
'plugin_list' -> 'Plugin-A 1.4, Plugin-B 2.1, Plugin-C 0.2'

我最初使用以下命令将数组作为字符串存储到数据库中:

 $players = $liveInfo['players'] ? implode(",", $liveInfo['players']) : '';

 $plugins = $liveInfo['plugins'] ? implode(",", $liveInfo['plugins']) : '';

我目前正在使用以下内容进行检索,然后将字符串转换回数组以准备foreach:

 $players = $server_live->player_list;
 $playersArray = explode(",", $players);
 $plugins = $server_live->plugin_list;
 $pluginsArray = explode(",", $plugins);

出于某种原因,我收到以下错误:Array to string conversion我不明白这个错误,因为我从String转到Array而且我查看php.net/manual它看起来很好吗? ...

2 个答案:

答案 0 :(得分:17)

如果你需要从Object转换为String,从String转换为Object,那么你需要进行序列化,而你的对象应该支持它。

在您的情况下,使用数组,支持序列化。

数组到字符串

$strFromArr = serialize($Arr);

String to Array

$Arr = unserialize($strFromArr);

有关更多信息,请参阅php.net网站:serialize unserialize

答案 1 :(得分:2)

如果必须按照自己的方式进行操作,则通过将数组存储在数据库中,使用serialize()功能。太棒了!

http://php.net/manual/en/function.serialize.php

$string = serialize($array);

$array = unserialize($string);