8

我有一个数组,我将其作为字符串存储在数据库中,以便更容易检索(通过 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,它看起来很好?...

4

2 回答 2

18

如果您需要从 Object 转换为 String 以及从 String 转换为 Object,那么您需要做的就是序列化,并且您的对象应该支持它。

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

数组转字符串

$strFromArr = serialize($Arr);

字符串到数组

$Arr = unserialize($strFromArr);

有关更多信息,请考虑查看 php.net 网站:serialize unserialize

于 2013-02-16T13:28:02.347 回答
3

如果您必须按照自己的方式进行操作,请将数组存储在数据库中,请使用该serialize()函数。这很棒!

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

$string = serialize($array);

$array = unserialize($string);

于 2013-02-16T13:28:23.100 回答