2015-05-07 23 views
0

我需要从一个阵列生成这个JSON:PHP数组到JSON用复制的钥匙

{ 
“authentication”: { 
“username”: “test”, 
“password”: “test” 
}, 
“msg”: [ 
{ 
    “name”: “jDOE”, 
    “msg”: “Hello”, 
    “recipients”: [ 
    { 
    “gm”: “385951111111” 
    }, 
    { 
    “gm”: “385952222222” 
    }, 
    { 
    “gm”: “385953333333” 
    } 
    ] 
} 
] 

}

这是很容易只创建阵列,但是,如果你看到的GM键重复3次。在PHP中,我认为我们不能在关联数组中有重复的键。那么我该如何复制这个....也许是一个对象?一个字符串?....生成结构后,我使用funciton json_encode来生成json。

这是我使用生成的json数组:

$data = array(
    'authentication' => array(
    'username' => 'BisA4Corp1', 
    'password' => 'Xls2smst5', 
), 
'messages' => array(
    'name' => 'jDOE', 
    'msg' => 'Mensaje de prueba', 
    'recipients' => array('gm' => '3387967849'), 
), 
); 

谢谢!

+0

检查:http://stackoverflow.com/questions/8259824/creating-json-data-with-duplicate-keys – zeflex

+0

护理,检查答案? –

回答

1

recipients必须是一个数组本身,所以您的阵列应该是这样的:

$data = array(
    'authentication' => array(
    'username' => 'BisA4Corp1', 
    'password' => 'Xls2smst5', 
), 
'messages' => array(
    'name' => 'jDOE', 
    'msg' => 'Mensaje de prueba', 
    'recipients' => array(
     array('gm' => '3387967849'), 
     array('gm' => '3387967849'), 
     array('gm' => '3387967849'), 
    ), 
), 
); 
0

使用multidimential数组作为PHP的犯规让你的代码。

<?php 
$data = array(
    'authentication' => array(
    'username' => 'BisA4Corp1', 
    'password' => 'Xls2smst5', 
), 
'messages' => array(
    'name' => 'jDOE', 
    'msg' => 'Mensaje de prueba', 
    'recipients' => array(array('gm' => '3387967849'), array('gm' => '385952222222')) 
) 
); 

echo "<pre>"; 
print_r($data); 

输出

Array 
(
    [authentication] => Array 
     (
      [username] => BisA4Corp1 
      [password] => Xls2smst5 
     ) 

    [messages] => Array 
     (
      [name] => jDOE 
      [msg] => Mensaje de prueba 
      [recipients] => Array 
       (
        [0] => Array 
         (
          [gm] => 3387967849 
         ) 

        [1] => Array 
         (
          [gm] => 385952222222 


    ) 

      ) 

    )