【问题标题】:Trying to convert a variable in PHP to an array [duplicate]试图将PHP中的变量转换为数组[重复]
【发布时间】:2018-07-07 12:38:15
【问题描述】:

我有一个从 API 调用中检索到的变量,并且正在尝试将输出转换为数组。以下是输出示例:

{"id":"4335416","linkId":4335416,"title":"Website 1","slashtag":"1","destination":"http://website1.com","createdAt":"2017-09-20T12:10:56.000Z","updatedAt":"2017-12-01T13:59:35.000Z","status":"active","clicks":722,"lastClickDate":"2018-01-28T15:47:21.000Z","lastClickAt":"2018-01-28T15:47:21.000Z","isPublic":false,"shortUrl":"url.st/1","domainId":"abc123","domainName":"url.st","domain":{"id":"abc123","ref":"/domains/abc123","fullName":"url.st","active":true},"https":false,"favourite":false,"creator":{"id":"321cba","fullName":"user123","avatarUrl":"https://s.gravatar.com/avatar/"}},
{"id":"4335402","linkId":4335402,"title":"Website 2","slashtag":"2","destination":"http://website2.com","createdAt":"2017-09-20T12:09:29.000Z","updatedAt":"2017-12-01T13:58:56.000Z","status":"active","clicks":234,"lastClickDate":"2018-01-28T13:44:29.000Z","lastClickAt":"2018-01-28T13:44:29.000Z","isPublic":false,"shortUrl":"url.st/2","domainId":"abc123","domainName":"url.st","domain":{"id":"abc123","ref":"/domains/abc123","fullName":"url.st","active":true},"https":false,"favourite":false,"creator":{"id":"321cba","fullName":"user123","avatarUrl":"https://s.gravatar.com/avatar/"}},
{"id":"4335375","linkId":4335375,"title":"Website 3","slashtag":"3","destination":"http://website3.com","createdAt":"2017-09-20T12:07:23.000Z","updatedAt":"2017-12-20T18:43:17.000Z","status":"active","clicks":111,"lastClickDate":null,"lastClickAt":null,"isPublic":false,"shortUrl":"url.st/3","domainId":"abc123","domainName":"url.st","domain":{"id":"abc123","ref":"/domains/abc123","fullName":"url.st","active":true},"https":false,"favourite":false,"creator":{"id":"321cba","fullName":"user123","avatarUrl":"https://s.gravatar.com/avatar/"}}

我希望它在数组中创建一个数组,如下所示:

$myArray = array( array( id => "4335416", 
                      linkId => 4335416,
                      title => "Website 1",
                      slashtag => "1",
                      destination => "http://website1.com",
                      ...
                    ),
               array( id => "4335402", 
                      linkId => 4335402,
                      title => "Website 2",
                      slashtag => "2",
                      destination => "http://website2.com",
                      ...
                    )
               array( id => "4335375", 
                      linkId => 4335375,
                      title => "Website 3",
                      slashtag => "3",
                      destination => "http://website3.com",
                      ...
                    )
             );

完全被这件事难住了……尽管我整天都在忙着做事情:(

非常感谢:)

【问题讨论】:

  • json_decode($str, true);
  • 在您粘贴 API 返回的内容时,您缺少打开和关闭的方括号。如果这确实是 API 返回数据的方式,那么仅使用 json_decode 是行不通的。在使用该函数之前,您需要先添加方括号。

标签: php multidimensional-array


【解决方案1】:

您可以将其转换为数组:

json_decode($myArray, true);

第二个参数true 将使它成为一个关联数组,其中包含来自您的 JSON 数据的命名键。

json_decode documentation

【讨论】:

    【解决方案2】:

    您正在寻找json_decode('APIcallValue', true)

    PHP manual

    【讨论】:

      【解决方案3】:

      此 API 响应似乎是 JSON。

      尝试做:

      $myArray = json_decode($api_response, true);
      

      其中 $api_response 是 API 响应变量

      【讨论】:

        【解决方案4】:

        谢谢你们...

        json_decode($api_response, true)
        

        完美运行。当您知道所有不同的命令时多么简单!妈。应该先在这里发布...为我节省了几个小时...

        再次感谢

        【讨论】:

        • 你应该选择一个答案而不是发布副本......:P
        • 对不起...我没有看到任何要选择答案的内容...哎呀:-/
        • 没什么大不了的,每个提交的答案旁边都是灰色的check-mark
        • ah nvm 它被标记为重复...
        猜你喜欢
        • 1970-01-01
        • 2021-09-08
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-08
        • 2018-04-24
        相关资源
        最近更新 更多