如何使用php创建嵌套JSon

如何使用php创建嵌套JSon,php,mysql,arrays,json,Php,Mysql,Arrays,Json,如何使用PHP创建这样的JSON?我正在尝试转换动态数据并将其保存到MySQL数据库中 { "fbd49440-a5a1-48be-b13e-e8efddad3588": { "0": { "value": "dsfrasdf5464356dfs hdhfg dfgh" } }, "0fc71cea-5609-40a7-a1d2-b78139660f8f": { "0": { "value": "50" } }, "73936e70

如何使用PHP创建这样的JSON?我正在尝试转换动态数据并将其保存到MySQL数据库中

{
"fbd49440-a5a1-48be-b13e-e8efddad3588": {
    "0": {
        "value": "dsfrasdf5464356dfs hdhfg dfgh"
    }
},
"0fc71cea-5609-40a7-a1d2-b78139660f8f": {
    "0": {
        "value": "50"
    }
},
"73936e70-4329-4aba-b47c-42c64ced420c": {
    "0": {
        "file": "\/components\/com_djclassifieds\/images\/item\/25_juliet_ibrahim.jpg",
        "uniqid": "59a352b96773325",
        "title": "",
        "file2": "",
        "overlay_effect": "",
        "caption": "",
        "width": "",
        "height": ""
    },
"ac00b95e-9eeb-4035-bf4a-ff206319b2d6": {
    "0": {
        "value": "members-in-good-standing-2014",
        "text": "",
        "target": "0",
        "custom_title": "",
        "rel": ""
    }
},
"69072346-fe4c-489e-8e2b-5a7d7409fd44": {
    "0": {
        "value": "34"
    }
}
}
我尝试了下面的代码,但它没有给我想要的结果

$json = (
"fbd49440-a5a1-48be-b13e-e8efddad3588"=> (
    $array1
),
"0fc71cea-5609-40a7-a1d2-b78139660f8f"=> (
    $array2
),
"73936e70-4329-4aba-b47c-42c64ced420c"=> (
    $array3
    ),
"ac00b95e-9eeb-4035-bf4a-ff206319b2d6"=> (
    $array4
),
"69072346-fe4c-489e-8e2b-5a7d7409fd44"=> (
    $array5
)
)

echo json_encode($json);
如果有人能帮助我,我会很高兴,谢谢你

json\u encode将获取多种类型的有效数据,并尝试将它们编码为它的json表示形式。它确实要求输入是有效的

您粘贴的代码有多个语法错误,我们无法判断$array1中有什么$阵列2,$阵列3,$阵列4,$阵列5。不过,如果您的$array是实际的数组,那么代码就可以正常工作了

还有一些位掩码选项,以的形式定义JSON的存储方式

$array = array( "data" => "value");  // dummy array to show data working

$json = array( //defined the following as an array
    "fbd49440-a5a1-48be-b13e-e8efddad3588"=> array( //notice each of these are now defined as arrays
        $array
    ),
    "0fc71cea-5609-40a7-a1d2-b78139660f8f"=> array(
        $array
    ),
    "73936e70-4329-4aba-b47c-42c64ced420c"=> array(
        $array
    ),
    "ac00b95e-9eeb-4035-bf4a-ff206319b2d6"=> array(
        $array
    ),
    "69072346-fe4c-489e-8e2b-5a7d7409fd44"=> array(
        $array
    )
); //added semicolon to end the declaration

echo json_encode($json, ( JSON_FORCE_OBJECT + JSON_PRETTY_PRINT ) ); 
// added JSON_FORCE_OBJECT and JSON_PRETTY_PRINT 
// As bitmask options, they return a constant to give `json_encode` instructions
// JSON_FORCE_OBJECT => 16, JSON_PRETTY_PRINT => 128 
// JSON_FORCE_OBJECT + JSON_PRETTY_PRINT = 16 + 128 = 144
// json_encode( $array, ( JSON_FORCE_OBJECT + JSON_PRETTY_PRINT ) = json_encode ($array, 144);
返回

(fBDDD404040-fBD404040-fBD404040-fBD4040-fBD4040-fBD404040-A7-a1d2-B787878787840404040404040-FD4040-FD404040-FD4040-FD404040-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-8-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-8}

json数据中的数组数组

如果您希望它打印每个结果的索引,那么也需要将其视为一个数组。当结果中有多对时,非常容易理解,当结果是一对时,就不那么直观了

$array1 = array( "data" => "value");
echo json_encode($array1, JSON_FORCE_OBJECT );
//would return
//{"data":"value"}

$array2 = array( 
    array( "data" => "value" ),
    array( "data" => "value" )
    );
echo json_encode($array2, JSON_FORCE_OBJECT );
// would return
// {"0":{"data":"value"},"1":{"data":"value"}}

$array3 = array( 
    array( "data" => "value" )
    );
echo json_encode($array3, JSON_FORCE_OBJECT );
// would return
// {"0":{"data":"value"}}

将来,你应该发布你得到的结果。通常,错误的结果会提供有助于定位问题的信息。在本例中,不正确的结果将显示语法错误,因为您的代码存在多个语法问题。谢谢@Luke的回答。它应该列出索引值为0的数组:{value:1dsfrasdf5464356dfs-hdhfg-dfgh},1:{value:2dsfrasdf54356dfs-hdhfg-dfgh},2:{value:3dsfrasdf5464356dfs-hdhfg-dfgh},这是表示为对象的JSON。我会根据情况调整答案。您的数组应该作为数组的数组包含。当我更改它并将JSON_FORCE_对象作为JSON_编码器的第二个参数添加到JSON_对象时,您会看到差异。当然,您的$array1等可以是一个结果数组。在这种情况下,您不需要在每一行中定义它们。我更新的答案就是这样。我将为Clarity添加细节,这是JSON_PRETTY_PRINT,另一个位掩码选项。答案中添加了详细信息