将JSON转换为方括号格式(JSON结构)


convert JSON into square bracket format (The JSON Structure)

我正在尝试将数组转换为这种JSON格式

[
    [
        ["SNO",1],
        ["chartType","pie"],
        ["outputValues","rural_total_m,urban_total_m"],
        ["attributeId",10025],
        ["level","india"]
    ],
    [
        ["SNO",2],
        ["chartType","column"],
        ["outputValues","total_m"],
        ["attributeId",10025],
        ["level","state"]
    ]
]

我有一个来自sql查询的数组,php的print_r()函数将其打印为-

Array
(
    [0] => Array
        (
            [SNO] => 1
            [chartType] => pie
            [outputValues] => rural_total_m,urban_total_m
            [attributeId] => 10025
            [level] => india
        )
    [1] => Array
        (
            [SNO] => 2
            [chartType] => column
            [outputValues] => total_m
            [attributeId] => 10025
            [level] => state
        )
)

如何获得上述格式?非常感谢。

更新

如果你想要这样的

[
    [
        ["SNO",1],
        ["chartType","pie"],
        ["outputValues","rural_total_m,urban_total_m"],
        ["attributeId",10025],
        ["level","india"]
    ],[
        ["SNO",2],
        ["chartType","column"],
        ["outputValues","total_m"],
        ["attributeId",10025],
        ["level","state"]
    ]
]

然后使用这个代码

让模拟数组为$result

$result = array(
                 array(
                    "SNO" => 1,
                    "chartType" => "pie",
                    "outputValues" => "rural_total_m,urban_total_m",
                    "attributeId" => 10025,
                    "level" => "india"
                ),
                 array(
                    "SNO" => 2,
                    "chartType" => "column",
                    "outputValues" => "total_m",
                    "attributeId" => 10025,
                    "level" => "state"
                ) 
        );
$return_array = array();

foreach ($result as $value) {
    $temp_array = array();
    foreach ($value as $key => $value) {
        $temp_array[] = array($key,$value);
    }
    $return_array[] = $temp_array;

}
echo json_encode($return_array);

否则,如果你想要的输出是这样一个

[
    ["SNO",1],
    ["chartType","pie"],
    ["outputValues","rural_total_m,urban_total_m"],
    ["attributeId",10025],
    ["level","india"]
    ["SNO",2],
    ["chartType","column"],
    ["outputValues","total_m"],
    ["attributeId",10025],
    ["level","state"]
]

然后用这个

$return_array=array();

foreach ($result as $value) {
    foreach ($value as $key => $value) {
        $return_array[] = array($key,$value);
    }
}

------------------------------更新前--------------------------------------------

不是最有效的解决方案,但会奏效!!

$array = array(7,4,2,8,4,1,9,3,2,16,7,12);
$alpha = 'a';
$retur_array = array();
foreach ($array as $value) {
    $retur_array[] = array($alpha++ , $value);
}
json_encode($retur_array);

输出

    [
["a",7],
["b",4],
["c",2],
["d",8],
["e",4],
["f",1],
["g",9],
["h",3],
["i",2],
["j",16],
["k",7],
["l",12]
]

Yuor输入数组将数字作为键。您需要对此进行循环,并将键更改为子数组中的值。

$new_array = array();
foreach ($array as $key => $val) {
    $new_array[] = array("$key", $val);
}
echo json_encode($new_array);