【问题标题】:php: converting an array of objects to pure arrayphp:将对象数组转换为纯数组
【发布时间】:2023-03-25 14:33:01
【问题描述】:

在服务器端接收到以下数组:

[{"id":"2","foo":"bar","children":[{"id":"4","foo":"baz","children":[{"id":"6"}]},{"id":"5"}]},{"id":"7"},{"id":"3"}]


有没有办法将它转换成这样的嵌套数组?

[
  ['id' => 2, 'foo' => 'bar', 'children' =>[ 
                                            'id'=> 4, 'foo' => 'baz' ....

P.S:我发现在不使用任何函数的情况下,我将在服务器端获得所需的代码格式。也许这是因为发送数据作为发布请求(使用 ajax)将数据转换为数组然后序列化并发送,然后在服务器端我有一个很好的数组,与我正在寻找的相同。我不确定它是与 php 或 laravel 或 jquery 相关!?

Array
(
[0] => Array
    (
        [id] => 2
        [children] => Array
            (
                [0] => Array
                    (
                        [id] => 4
                        [children] => Array
                            (
                                [0] => Array
                                    (
                                        [id] => 6
                                    )

                            )

                    )

                [1] => Array
                    (
                        [id] => 5
                    )

            )

    )

[1] => Array
    (
        [id] => 7
    )

[2] => Array
    (
        [id] => 3
    )

)

【问题讨论】:

  • 还要注意 json_decode 的第二个参数
  • 听起来很奇怪,但是为什么不尝试将其保留为 JSON 字符串,然后将 '{' 替换为 '[','}' 替换为 ']' 和 ':' 替换为 '=>' ,然后只有 json_decode()? ;-)

标签: php jquery laravel


【解决方案1】:

要在 PHP 中获取数组,是。使用json_decode()

要在 JSON 中获得“这样的嵌套数组”,不。这不是 JSON 中的数组应该看起来的样子。看json.org的规范,真的很容易理解。

【讨论】:

  • 考虑到输入已经是 JSON,第二部分真的没有意义
  • 我知道。我只是想说明这一点。当然也可以尝试“重组”一个数组,这就是我包含这个的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 2022-01-14
  • 2022-01-20
  • 2017-09-13
  • 1970-01-01
  • 2011-11-08
  • 2014-11-09
相关资源
最近更新 更多