Ключ JSON PHP с тем же именем - PullRequest
0 голосов
/ 25 мая 2018

Chatfuel дает это как способ ответить:

{
"messages": [
{"text": "Welcome to the Chatfuel Rockets!"},
{"text": "What are you up to?"}
]
}

Я хочу вывести что-то подобное с Моим текстом, но ключи с таким же значением невозможны, так как он выводит первый ключ споследнее значение

<?php
 $arr = array(array('messages' => array('text' => "Text 1", 'text' => "text 
 2")));


 if ("test" == "test"){
  echo json_encode($arr);
 }

Вывод: [{"messages": {"text": "text 2"}}]

Как вывести способ, запрошенный chatfuel?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018
$arr = ['messages' => [['text' => 'Text 1'], ['text' => 'Text 2']]];
echo json_encode($arr, JSON_PRETTY_PRINT);

Выход:

{
    "messages": [
        {
            "text": "Text 1"
        },
        {
            "text": "Text 2"
        }
    ]
}
0 голосов
/ 25 мая 2018

Я собираюсь сделать это довольно многословным, чтобы вы могли видеть, как генерируется структура.Существует внешний объект, который содержит свойство «messages», которое представляет собой массив объектов «message», каждый из которых имеет свойство «text».

V1

$json = new stdClass();
$json->messages = array();

$message = new stdClass();
$message->text = 'Welcome to the Chatfuel Rockets!';
$json->messages[] = $message;

$message = new stdClass();
$message->text = 'What are you up to?';
$json->messages[] = $message;

echo json_encode( $json, JSON_PRETTY_PRINT );

V2

$json = array(
  'messages' => array(
    array(
      'text' => 'Welcome to the Chatfuel Rockets!'
    ),
    array(
      'text' => 'What are you up to?'
    ),
  )
);

echo json_encode( $json, JSON_PRETTY_PRINT );
...