2 json 和 PHP 有什么区别
What different between 2 json with PHP
我有这两个代码可以在 PHP 中从数组生成 json:
代码 1
$array_1 = array("A","B","C");
$array_2 = array("D","E","F");
echo json_encode(array('array_0'=> array('array_1'=>$array_1,'array_2'=>$array_2)));
输出:
{
"array_0":
{
"array_1": ["A", "B", "C"],
"array_2": ["D", "E", "F"]
}
}
代码 2
$A = array('A','B','C');
$B = array('array_1' => $A);
$C = array('D','F','E');
$D = array('array_2' => $C);
$E = array($B, $D);
$F = array('array_0' => $E);
echo json_encode($F);
输出:
{
"array_0": [
{
"array_1": ["A", "B", "C"]
},
{
"array_2": ["D", "F", "E"]
}
]
}
为什么2个输出有区别?哪一个是正确的?
谢谢!
在第一种情况下,array_0是一个转换为js对象的关联数组。
在第二种情况下,array_0是一个转换为js数组的数值数组。
没有correct/wrong。他们都是正确的。
在 code_2
中,您将 array_0
创建为:
array(array('array_1' => $A), array('array_2' => $C));
// ^$E ^$B ^$D
而您 code_1
中的类似步骤是:
array('array_1' => $A, 'array_2' => $C)
您可以通过在 code_2
中定义 $E
来使它们相似,如下所示:
$E = array_merge($B, $D)
我有这两个代码可以在 PHP 中从数组生成 json:
代码 1
$array_1 = array("A","B","C");
$array_2 = array("D","E","F");
echo json_encode(array('array_0'=> array('array_1'=>$array_1,'array_2'=>$array_2)));
输出:
{
"array_0":
{
"array_1": ["A", "B", "C"],
"array_2": ["D", "E", "F"]
}
}
代码 2
$A = array('A','B','C');
$B = array('array_1' => $A);
$C = array('D','F','E');
$D = array('array_2' => $C);
$E = array($B, $D);
$F = array('array_0' => $E);
echo json_encode($F);
输出:
{
"array_0": [
{
"array_1": ["A", "B", "C"]
},
{
"array_2": ["D", "F", "E"]
}
]
}
为什么2个输出有区别?哪一个是正确的?
谢谢!
在第一种情况下,array_0是一个转换为js对象的关联数组。
在第二种情况下,array_0是一个转换为js数组的数值数组。
没有correct/wrong。他们都是正确的。
在 code_2
中,您将 array_0
创建为:
array(array('array_1' => $A), array('array_2' => $C));
// ^$E ^$B ^$D
而您 code_1
中的类似步骤是:
array('array_1' => $A, 'array_2' => $C)
您可以通过在 code_2
中定义 $E
来使它们相似,如下所示:
$E = array_merge($B, $D)