在PHP中创建JSON数组

在PHP中创建JSON数组,php,arrays,json,Php,Arrays,Json,我需要用PHP创建这个JSON数组。如果我echo {"SUCCESS":[{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"mail@me.com","currency":"USD"}}],"apiversion":"2.3.1"} 上面的回音代码按照我的要求工作 下面的代码无法构建阵列: header('Content-type:application/json;charset=utf

我需要用PHP创建这个JSON数组。如果我
echo

{"SUCCESS":[{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"mail@me.com","currency":"USD"}}],"apiversion":"2.3.1"}
上面的回音代码按照我的要求工作


下面的代码无法构建阵列:

    header('Content-type:application/json;charset=utf-8');
    $data[SUCCESS] = array(
        'credit'   => '$56.98USD',
        'mail' => 'mail@me.com',
        'message' => 'Your Accout Info',
        'currency' => 'USD',
        'apiversion' => '2.3.1'  
    );

    echo json_encode($data);
我错过了什么? 谢谢


更新:

我已将代码更新为:

    $data = array('SUCCESS' => array(
        'message'   => 'Your Accout Info',
        'AccoutInfo' => array(
        'credit' => '$56.98USD',
        'mail' => 'me@mail.com',
        'currency' => 'USD'),
        'apiversion' => '2.3.1')
   );
现在我得到了这个结果:

{"SUCCESS":{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"me@mail.com","currency":"USD"},"apiversion":"2.3.1"}}
{"SUCCESS":[{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"me@mail.com","currency":"USD"}}],"apiversion":"2.3.1"}
但我需要这个结果:

{"SUCCESS":{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"me@mail.com","currency":"USD"},"apiversion":"2.3.1"}}
{"SUCCESS":[{"message":"Your Accout Info","AccoutInfo":{"credit":"$56.98USD","mail":"me@mail.com","currency":"USD"}}],"apiversion":"2.3.1"}
有什么建议可以解决这个问题吗?

更改

 $data[SUCCESS] = array(...

改为

$data = array('SUCCESS' => array(
        'credit'   => '$56.98USD',
        'mail' => 'mail@me.com',
        'message' => 'Your Accout Info',
        'currency' => 'USD',
        'apiversion' => '2.3.1'  
    )
);

echo json_encode($data);

首先创建
$data
,它可以是对象或数组,并将
SUCCESS
用作字符串
'SUCCESS'
,而不是未定义的常量

header('Content-type:application/json;charset=utf-8');
$data = array('SUCCESS' => array(
        array(
            'AccoutInfo' => array(
                'credit'   => '$56.98USD',
                'mail' => 'mail@me.com',
                'currency' => 'USD'
            ),
            'message' => 'Your Accout Info',
        )
    ),
    'apiversion' => '2.3.1'  
);

echo json_encode($data);

另外,您硬编码的json和您尝试构建的结构也非常不同

最后我让它工作了:-)



感谢@Musa为我指出了正确的方向。

不起作用,看起来“AccoutInfo”又是数组中的数组了?它在第12行报告错误。不管怎样,我在下面的答案中找到了它。谢谢你的帮助。它帮助我使这个阵列成功。检查下面。谢谢