在PHP中将数组转换为字符串再转回来

5
我使用PHP创建了一个数组。
$userarray = array('UserName'=>$username,'UserId'=>$userId,'UserPicURL'=>$userPicURL);

如何在PHP中将数组转换为字符串,然后再从字符串转换回数组。这是一种要求。请问有人可以建议如何实现吗?


可能是重复的问题:将PHP数组字符串转换为数组 - outis
4个回答

10

您可以通过序列化将任何PHP数据类型(但不包括资源)转换为字符串:

$string = serialize($array);

然后通过再次反序列化将其转换回原始形式:

$array = unserialize($string);

一个序列化的数组是以字符串形式存在的。可以通过反序列化将其转换回数组。

对于你的数组,json_encode / -_decode也可以完成相同的工作:

$string = json_encode($array);
$array = json_decode($string);

1
请注意使用serialize/unserialize与implode/explode之间的区别在于前者将不受值内容的影响而正常工作 - 根据Alex提供的示例,如果其中一个值包含空格,该方法将失败。 - symcbean

1
使用函数implode(separator,array),它将从数组的元素返回一个字符串。
然后使用函数explode(string $delimiter, string $string [, int $limit])将其转换回数组。
$array_as_string = implode(" ",$userarray);
$new_array = explode(" ",$array_as_string);

谢谢!对我来说完美地运作了。 - Ankit Pandey

0

你可以使用任何一种

$userarray = array('UserName' => $username, 'UserId' => $userId, 'UserPicURL' => $userPicURL);
$string = json_encode($userarray);
$backtoarray = json_decode($string);

或者

$userarray = array('UserName' => $username, 'UserId' => $userId, 'UserPicURL' => $userPicURL);
$string = serialize($userarray);
$backtoarray = unserialize($string);

第一个使用XML存储,第二个使用JSON。

0

这段代码对我很有用,可以再次获取数组:

$backtoarray = (array) json_decode($string);

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接