Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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
json和PHP之间有什么不同_Php_Json - Fatal编程技术网

json和PHP之间有什么不同

json和PHP之间有什么不同,php,json,Php,Json,我有以下两个代码可以在PHP中从数组生成json: 代码1 输出: { "array_0": { "array_1": ["A", "B", "C"], "array_2": ["D", "E", "F"] } } { "array_0": [ { "array_1": ["A", "B", "C"] }, { "array_2": [

我有以下两个代码可以在PHP中从数组生成json:

代码1

输出:

{
    "array_0":
    {
        "array_1": ["A", "B", "C"],
        "array_2": ["D", "E", "F"]
    }
}
{
    "array_0": [
        {
            "array_1": ["A", "B", "C"]
        },
        {
            "array_2": ["D", "F", "E"]
        }
    ]
}
代码2

输出:

{
    "array_0":
    {
        "array_1": ["A", "B", "C"],
        "array_2": ["D", "E", "F"]
    }
}
{
    "array_0": [
        {
            "array_1": ["A", "B", "C"]
        },
        {
            "array_2": ["D", "F", "E"]
        }
    ]
}
为什么两个输出之间存在差异?哪一个是正确的


谢谢你

在第一种情况下,数组_0是转换为js对象的关联数组

在第二种情况下,array_0是一个转换为js数组的数字数组

没有正确/错误。它们都是正确的。

在代码2中,您将数组0创建为:

而代码_1中的类似步骤是:

您可以通过在代码_2中定义$E使它们相似,如下所示:

$E = array_merge($B, $D)

你说正确是什么意思?两者都是正确的。它们是两种不同的结构。为什么会是正确的和一个不正确的?为什么会有不同的结构?我认为两个代码是一样的?代码2不一样。在代码2中,您正在执行数组$B、$D。您正在创建一个由2个数组组成的数组。这与代码1不同。你应该做的是:$B['array_2']=$C$F=数组'array_0'=>$B;。去掉$D和$E。您希望将数组_1和数组_2添加到同一个数组中,而不是将它们添加到它们自己的数组中。这对于var_dump或print_r来说是一个很好的情况。如果您使用这些函数而不是json_encode,您将看到这些结构并不完全相同
array('array_1' => $A, 'array_2' => $C)
$E = array_merge($B, $D)