PHP 从字符串恢复数组


PHP Restore an Array from a String

我有一个数组,生成起来非常复杂。

因此,希望生成一次,然后作为字符串存储在数据库中。

然后,只要需要,就可以简单地从数据库中检索它作为字符串并声明为数组。有没有一种简单的方法可以在不使用 eval() 函数的情况下在 PHP 上做这样的事情。

所以数据库中的字符串可能是这样的

Array
(
    [0] => Array
        (
            ['none'] => Array
                (
                    ['none'] => Array
                        (
                            ['Page'] => Array
                                (
                                    [0] => 1
                                    [1] => 2
                                    [2] => 3
                                )
                        )
                )
        )
    [1] => Array
        (
            ['Volume 1'] => Array
                (
                    [] => Array
                        (
                            ['Page'] => Array
                                (
                                    [27] => 18
                                    [28] => 19
                                    [29] => 20
                                )
                        )
                )
            ['Volume 2'] => Array
                (
                    [] => Array
                        (
                            ['Page'] => Array
                                (
                                    [0] => 1
                                    [1] => 2
                                    [2] => 3
                                    [3] => 4
                                    [4] => 5
                                    [5] => 6
                                )
                        )
                )
        )
)
您可以使用

json_encodejson_decode函数。它们将数组序列化为 JSON 字符串或将有效的 JSON 字符串分别反序列化为数组。

使用序列化/反序列化函数可能并不总是一个好主意,因为它们会带来安全问题。代码可能会在反序列化时执行,这是您不打算执行的。如果没有外部用户对序列化对象具有写入访问权限,则应该没问题。

是的,使用序列化和反序列化函数。