Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将自定义数组转换为特定对象结构_Php_Json - Fatal编程技术网

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

PHP将自定义数组转换为特定对象结构,php,json,Php,Json,我有一个需要转换成特定结构的数据数组,以便第三方插件正确加载 目前我能实现的最接近的阵列如下,从这里我被卡住了 php数组 [ [ ["item1"], ["itemname"], ["item desc"], ["05\/14\/2014"] ], [ ["item12"], ["itemname2"]

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

目前我能实现的最接近的阵列如下,从这里我被卡住了

php数组

 [
        [
            ["item1"],
            ["itemname"],
            ["item desc"],
            ["05\/14\/2014"]
        ],
        [
            ["item12"],
            ["itemname2"],
            ["item desc2"],
            ["05\/14\/2014"]
        ]
    ]
json_编码

[ 
 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"},
]

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

通过将所有数组元素强制转换为
JSON\u encode
之前的对象,可以生成表示对象数组的JSON字符串。但是,这将提供字符串键,而不是数字键(不是有效的JSON):

输出:

[
    {
        "0": "Value1",
        "1": "Value2",
        "2": "Value3"
    },
    {
        "0": "Test",
        "1": "Test2",
        "2": "Test3"
    },
    {
        "0": "Random1",
        "1": "Random2",
        "2": "Random3"
    }
]
[
    {
        "0": "item1",
        "1": "itemname",
        "2": "item desc",
        "3": "05\/14\/2014"
    },
    {
        "0": "item12",
        "1": "itemname2",
        "2": "item desc2",
        "3": "05\/14\/2014"
    }
]

更新

根据对问题的编辑,您似乎正在查找以下内容:

$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": "Value1",
        "1": "Value2",
        "2": "Value3"
    },
    {
        "0": "Test",
        "1": "Test2",
        "2": "Test3"
    },
    {
        "0": "Random1",
        "1": "Random2",
        "2": "Random3"
    }
]
[
    {
        "0": "item1",
        "1": "itemname",
        "2": "item desc",
        "3": "05\/14\/2014"
    },
    {
        "0": "item12",
        "1": "itemname2",
        "2": "item desc2",
        "3": "05\/14\/2014"
    }
]
在3v4l.org上演示

您可以使用

json_encode($your_array, JSON_FORCE_OBJECT),

这应该是一个JSON字符串吗?是的,尼克,它是JSON字符串。它是无效的,因为对象的键必须用引号括起来……我将更新JSON字符串。到目前为止,您尝试了什么?您的问题中没有提供任何尝试Hi我喜欢您的答案,但我有一些问题,我提供的数组已经是json_编码的,我无法在json_编码数组中进行验证,我已经编辑了我的问题并添加了未编码的实际数组,非常感谢much@apelidoko原始的数组PHP数组是完全不同的。你期望从中得到什么样的输出?我期望的输出与你能够获得的输出相同,我实际上使用的是Ajax datatable,问题是它只接受其中的数据format@apelidoko这也许就是你想要的:?非常感谢尼克,你帮了我大忙,