加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – json_encode()在多维数组上 – 使用字符串键

发布时间:2020-12-13 17:44:54 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 PHP创建一个非常大的多维数组.每个对象都包含Name,ID,ParentID和Children.子元素是一组具有相同格式的更多对象. 关键是我命名每个对象的ID – 这有助于我将每个对象放在正确的父对象之下. (在下面的代码中,我使用101,102等) 但是,我遇到的问题是
我正在使用 PHP创建一个非常大的多维数组.每个对象都包含Name,ID,ParentID和Children.子元素是一组具有相同格式的更多对象.

关键是我命名每个对象的ID – 这有助于我将每个对象放在正确的父对象之下. (在下面的代码中,我使用101,102等)

但是,我遇到的问题是当我使用json_encode在JSON中返回数组时.每个’Children’数组都被打印为一个对象,而不是一个数组 – 如下面的JSON代码所示.

当我读到另一个SO线程here时,它们“由于包含字符串键而被制作为对象” – 尽管它们是数字,但它们仍然是字符串.

{
"101": {
    "ID": "101","ParentID": "0","Name": "Root One"
    "Children": {
        "102": {
            "ID": "102","ParentID": "101","Name": "Child One"
        },"103": {
            "ID": "103","Name": "Child Two","Children": {
                "104": {
                    "ID": "104","ParentID": "103","Name": "Child Child One"
                }
            }
        },

有谁知道如何克服这个问题?

编辑:JSON应该如下所示(方括号很重要!):

[
{
    "ID": "101","Name": "Root One","Children": [
        {
            "ID": "102","Name": "Child One","Children": [

解决方法

JSON数组没有显式索引,它只是一个有序列表.唯一具有命名键的JSON数据结构是一个对象.文字应该使这一点非常明显:

["foo","bar","baz"]

此数组没有命名索引,也没有任何添加任何规定.

PHP将列表和键值存储混合为一种数组数据类型. JSON没有.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读