【问题标题】:appending one multidimensional array to another array element and encode to json php将一个多维数组附加到另​​一个数组元素并编码为json php
【发布时间】:2016-07-28 16:21:45
【问题描述】:

我有两个多维数组如下:

一个用于类别:

$categories = array (
        array("slug1", "label1"),
        array("slug2","label2"),
        array("slug3","label3"), 
        array("slug4","label4")
    );

另一个子类别:

$subCategories = array (
        array("sub-slug1","sub-label1"),
        array("sub-slug2","sub-label2"),
        array("sub-slug3","sub-label3"), 
        array("sub-slug4","sub-label4")
    );

我只能为以下类别生成 json:

foreach ($categories as $category) {

        $catArray[] = array("category-slug" => $category[0], "category-label" => $category[1], "subcategory-slug" => $subCategory[0], "subcategory-label" => $subCategory[1] );
    }
echo json_encode($catArray);

现在,我必须将整个子类别数组附加到一个类别中,比如 slug1 以便格式变为:

array("category-slug" => $category[0], "category-label" => $category[1], "subcategory-slug" => $subCategory[0], "subcategory-label" => $subCategory[1] )

更新
输出应采用以下格式:

[
{
    "category-slug": "slug1",
    "category-label": "label1",
    "subcategory": [
    {
        "subcategory-slug": "sub-slug1",
        "subcategory-label": "sub-label1",
    },
    {
        "subcategory-slug": "sub-slug1",
        "subcategory-label": "sub-label1",
    },
    {
        "subcategory-slug": "sub-slug1",
        "subcategory-label": "sub-label1",
    },
    {
        "subcategory-slug": "sub-slug1",
        "subcategory-label": "sub-label1",
    }]
},
{
    "category-slug": "slug2",
    "category-label": "label2",
    "subcategory": []
},
{
    "category-slug": "slug3",
    "category-label": "label3",
    "subcategory": []
    }
},
{
    "category-slug": "slug4",
    "category-label": "label4",
    "subcategory": []    
    }
}
]

【问题讨论】:

  • 您的预期结果不清楚。您能否根据输入值显示预期结果?

标签: php arrays json


【解决方案1】:

如果 $categories$subCategories 数组具有相同的项目顺序 - 使用以下方法就足够了:

$catArray = [];
foreach ($categories as $k => $category) {
    $catArray[] = [
        "category-slug" => $category[0],
        "category-label" => $category[1],
        "subcategory-slug" => $subCategories[$k][0],
        "subcategory-label" => $subCategories[$k][1]
    ];
}

echo json_encode($catArray, JSON_PRETTY_PRINT);

输出:

[
    {
        "category-slug": "slug1",
        "category-label": "label1",
        "subcategory-slug": "sub-slug1",
        "subcategory-label": "sub-label1"
    },
    {
        "category-slug": "slug2",
        "category-label": "label2",
        "subcategory-slug": "sub-slug2",
        "subcategory-label": "sub-label2"
    },
    {
        "category-slug": "slug3",
        "category-label": "label3",
        "subcategory-slug": "sub-slug3",
        "subcategory-label": "sub-label3"
    },
    {
        "category-slug": "slug4",
        "category-label": "label4",
        "subcategory-slug": "sub-slug4",
        "subcategory-label": "sub-label4"
    }
]

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 2011-05-22
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    相关资源
    最近更新 更多