将字符串数组转换为数组

时间:2015-07-27 11:23:42

标签: php arrays string

不幸的是,数组以字符串

的形式保存在数据库中
'Array
(
    [MerID] => 00000
    [AcqID] => 2121
    [OrderID] => 94
    [ResponseCode] => 1
    [ReasonCode] => 1

)'

我希望将此字符串转换为原始数组。请帮助

1 个答案:

答案 0 :(得分:0)

正如其他人警告过你,存储实际需要以这种格式使用的数据是一个可怕的想法(来自var_dump?)。如果你已经坚持使用这种格式的数据,这将适用于给定的字符串:

$string = ('Array
(
    [MerID] => 00000
    [AcqID] => 2121
    [OrderID] => 94
    [ResponseCode] => 1
    [ReasonCode] => 1

)');

$arrayOnly = preg_match('!\(([^\)]+)\)!', $string, $match);
$prepared = '$array = array(' . str_replace(['[', ']', "\n"], ['"','"', ","], trim($match[1])) . ');';
 eval($prepared); //$array is now set to your array

请记住,您的里程可能会有所不同,这适用于此特定实例,但可能会在多维数组字符串上失败。

如果您确实可以控制数据的实际存储方式并希望获得灵活的阵列存储解决方案,请在存储之前查看json_encode或序列化数组。然后,当您检索数据时,可以使用json_decode或unserialize来获取原始数组。