Json отображается в индивидуальном формате

Я успешно получаю комментарии к сообщениям Wordpress через PHP-код. Теперь я хочу отображать все комментарии к сообщениям в формате JSON. Я привел несколько примеров, чтобы завершить этот прогресс, но все комментарии (формат JSON) отображаются индивидуально.

См. Пример результата:

[{
    "author": "JimmiXzSq",
    "comment": "test1"
}]

[{
    "author": "MoseJackswka",
    "comment": "test2"
}]

Но я хочу отображать правильный формат JSON

Мой код тренировки:

foreach ( $comments as $comment ) :

  $getauthor = $comment->comment_author ;
  $getcontent =  $comment->comment_content;
  $test1=  array('author' => $getauthor, 'comment' => $getcontent);

  $displaycomments = json_encode(array(($test1)),true);
  echo $displaycomments;
endforeach;

Это потому, что вы json_encode каждый бит отдельно внутри цикла. Таким образом, они рассматриваются как отдельные, отдельные части JSON, а не как один большой список. Между ними нет связи. Вместо этого создайте один объект / массив PHP, содержащий все данные, а затем json_encode этот объект один раз после завершения цикла.

ADyson 02.05.2018 11:44
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите вставить все свои комментарии в один json:

$comments = array();

foreach ( $comments as $comment ) :
    $getauthor = $comment->comment_author ;
    $getcontent =  $comment->comment_content;
    $tmp=  array('author' => $getauthor, 'comment' => $getcontent);

    $comment[] = $tmp;
endforeach;

$displaycomments = json_encode($comments);
echo $displaycomments ;

дам

{
    {
        "author": "JimmiXzSq",
        "comment": "test1"
    }
    ,
    {
        "author": "MoseJackswka",
        "comment": "test2"
    }
}

спасибо за ваш ценный ответ, но одна небольшая проблема. после того, как вы попробуете свой код, отобразите все поля, такие как идентификатор комментария, время комментария, например. Я хочу отображать только определенное поле (автор и комментарий) $ comments = get_comments ($ args); foreach ($ comments как $ comment): $ getauthor = $ comment-> comment_author; $ getcontent = $ comment-> comment_content; $ tmp = array ('author' => $ getauthor, 'comment' => $ getcontent); // $ комментарий [] = $ tmp; endforeach; $ displaycomments = json_encode ($ комментарии); echo $ displaycomments; мой исходный код

Partha Sarathy 02.05.2018 12:24

Я действительно не понимаю ... Ваш json содержит "автора комментария", "идентификатор комментария", "время комментария", "текст комментария" ... И вы просто хотите отобразить конкретную информацию. И мой код отображает всю информацию?

Fanie Void 02.05.2018 13:20

Другие вопросы по теме