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

Php 将JSON转换为方括号格式(JSON结构),php,arrays,json,Php,Arrays,Json,我正在尝试将数组转换成这种JSON格式 [ [ ["SNO",1], ["chartType","pie"], ["outputValues","rural_total_m,urban_total_m"], ["attributeId",10025], ["level","india"] ], [ ["SNO",2], ["chartType","column"

我正在尝试将数组转换成这种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"]

]
那就用这个

[

    ["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()

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

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

$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]
]

已更新

如果你想要这样的东西

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

]
那就用这个

[

    ["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()

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

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

$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]
]

YOUR输入数组将数字作为键。您需要循环使用它,并将键更改为子数组中的值

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

YOUR输入数组将数字作为键。您需要循环使用它,并将键更改为子数组中的值

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


所需的格式与示例数据不匹配,因此不清楚您想要什么。[1=>7,4,2,8,4,1,9,3,2,16,7,12]应如何转换为[[“a”,12],“b”,5],“c”,18],“d”,13],“e”,7],“f”,4],“g”,9]?如果您为所讨论的数组提供所需的输出,您可能会得到更好的答案。为什么12与
a
相同?为什么
b
5?哪有5个呢?很抱歉,假设a,b,c,d,e,f,g为1,2,3,4,5,6,7,8。当我写[1=>7,4,8,…]时,json_encode()函数会自动从1增加到值的数量。我希望现在已经清楚了!所需的格式与示例数据不匹配,因此不清楚您想要什么。[1=>7,4,2,8,4,1,9,3,2,16,7,12]应如何转换为[[“a”,12],“b”,5],“c”,18],“d”,13],“e”,7],“f”,4],“g”,9]?如果您为所讨论的数组提供所需的输出,您可能会得到更好的答案。为什么12与
a
相同?为什么
b
5?哪有5个呢?很抱歉,假设a,b,c,d,e,f,g为1,2,3,4,5,6,7,8。当我写[1=>7,4,8,…]时,json_encode()函数会自动从1增加到值的数量。我希望现在已经清楚了!这正是我想要的!但是如果我已经为每个值定义了alpha呢?嗯,那么如果alpha已经定义了,那么它们必须在一个数组中或者其他什么东西中,所以你可以通过索引来搜索它们,只需更改$alpha=0;,如果没有,那么你能更清楚地知道阿尔法的存储位置和方式吗!!从sql表中选择查询定义的数组!如果我在该数组上应用上述代码,它将以[[{“key”:“value”}]、{“key”:“value”}]、……]一个由select query from sql table定义的数组的形式生成输出!如果我在该数组上应用上述代码,它将生成输出[[{“key”:“value”}]、{“key”:“value”}]、…]并且每个花括号不仅包含单个值,还包含多个值!我认为是阵列中的错误!如果您可以更新问题,也可以放置一个模拟对象或数组,您正在从db调用它,这正是我想要的!但是如果我已经为每个值定义了alpha呢?嗯,那么如果alpha已经定义了,那么它们必须在一个数组中或者其他什么东西中,所以你可以通过索引来搜索它们,只需更改$alpha=0;,如果没有,那么你能更清楚地知道阿尔法的存储位置和方式吗!!从sql表中选择查询定义的数组!如果我在该数组上应用上述代码,它将以[[{“key”:“value”}]、{“key”:“value”}]、……]一个由select query from sql table定义的数组的形式生成输出!如果我在该数组上应用上述代码,它将生成输出[[{“key”:“value”}]、{“key”:“value”}]、…]并且每个花括号不仅包含单个值,还包含多个值!我认为是阵列中的错误!如果您可以更新问题,也可以放置一个模拟对象或数组,您正在从db调用该对象或数组,