2015-05-07 2 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 


    ) 

      ) 

    ) 

)

Смежные вопросы