PHP从字符串还原数组

PHP从字符串还原数组,php,mysql,arrays,Php,Mysql,Arrays,我有一个数组,生成起来非常复杂 因此,您希望生成它一次,然后将其作为字符串存储在数据库中 然后,无论何时需要它,它都可以作为字符串从数据库中检索并声明为数组。有没有一种简单的方法可以在PHP上执行这样的操作,而不必使用eval()函数 因此,数据库中的字符串可能类似于 Array ( [0] => Array ( ['none'] => Array ( ['none

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

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

然后,无论何时需要它,它都可以作为字符串从数据库中检索并声明为数组。有没有一种简单的方法可以在PHP上执行这样的操作,而不必使用eval()函数

因此,数据库中的字符串可能类似于

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字符串,或将有效的JSON字符串反序列化为数组


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

我只是编码和解码了。函数将[0]=>数组更改为[0]=>stdClass对象。i、 数组成为stdClass对象。你知道怎么做吗。我需要它保持一个数组。谢谢,但似乎增加了很多开销,而序列化没有。嗯,我更喜欢安全性而不是开销。Serialize使用二进制格式,JSON是基于ASCII的格式(在各种架构或PHP版本之间传递时不需要额外注意)