PHP 将自定义数组转换为特定对象结构

我有一组数据需要转换成特定的结构,以便第三方插件可以正确加载它。


我能够实现的当前最接近的阵列是下面这个,从这里我被困住了。


数组


 [

        [

            ["item1"],

            ["itemname"],

            ["item desc"],

            ["05\/14\/2014"]

        ],

        [

            ["item12"],

            ["itemname2"],

            ["item desc2"],

            ["05\/14\/2014"]

        ]

    ]

json_encoded


 0 => [0 => "Value1", 1 => "Value2", 2 => "Value3" ], 

 1 => [0 => "Test", 1 => "Test2", 2 => "Test3" ], 

 2 => [0 => "Random1", 1 => "Random2", 2 => "Random3" ]

]

我如何将其转换为具有这样的结构,


[

  {"0":"Value1","1":"Value2", "2":"Value3"},

  {"0":"Test", "1":"Test2","2":"Test3"},

  {"0":"Random1","1":"Random2","2":"Random3"},

]

任何想法将不胜感激,非常感谢!


天涯尽头无女友
浏览 129回答 2
2回答

慕虎7371278

您可以通过将所有数组元素转换为之前的对象来制作表示对象数组的 JSON 字符串json_encode。然而,这将给出字符串键,而不是数字键(这不是有效的 JSON):$array = [  0 => [0 => "Value1", 1 => "Value2", 2 => "Value3" ],  1 => [0 => "Test", 1 => "Test2", 2 => "Test3" ],  2 => [0 => "Random1", 1 => "Random2", 2 => "Random3" ]];foreach ($array as &$arr) {    $arr = (object)$arr;}echo json_encode($array, JSON_PRETTY_PRINT);输出:[    {        "0": "Value1",        "1": "Value2",        "2": "Value3"    },    {        "0": "Test",        "1": "Test2",        "2": "Test3"    },    {        "0": "Random1",        "1": "Random2",        "2": "Random3"    }]更新根据对问题的编辑,您似乎正在寻找这个:$array = [        [            ["item1"],            ["itemname"],            ["item desc"],            ["05/14/2014"]        ],        [            ["item12"],            ["itemname2"],            ["item desc2"],            ["05/14/2014"]        ]    ];foreach ($array as &$arr) {    $arr = (object)array_map(function ($a) { return $a[0]; }, $arr);}echo json_encode($array, JSON_PRETTY_PRINT);输出:[    {        "0": "item1",        "1": "itemname",        "2": "item desc",        "3": "05\/14\/2014"    },    {        "0": "item12",        "1": "itemname2",        "2": "item desc2",        "3": "05\/14\/2014"    }]

烙印99

您可以使用  json_encode($your_array, JSON_FORCE_OBJECT),
打开App,查看更多内容
随时随地看视频慕课网APP