Как убрать лишнюю квадратную скобку из JSON, имеющего несколько массивов - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь получить JSON из массива, но получаю дополнительную квадратную скобку в выходных данных.

Я попытался использовать $episode[0] = $podcast->getPodcastByCategoryId($id);, но он дает только неполный вывод, значит, он дает данные первогоитерация из массива.И если я удаляю [] из $ episode, который также дает данные первой итерации.

$podList = $category->getCategoryPodcast();

if ($podList) {

    foreach ($podList as $items) {

        $id = $items->id;

        $episode[] = $podcast->getPodcastByCategoryId($id); 

    } 

}

echo json_encode($episode);

Я ожидаю, что у меня будет только одна квадратная скобка, но я получаю вывод с двумя квадратными скобками.

Это вывод, который я получаю из приведенного выше кода:

[
[
    {
      "id": "6",
      "title": "Types of loops in PHP.",
      "description": "s.kfjhsdlufdgf o",
      "duration": "0:05:05",
      "audio": "http://demo.web/uploads/podAudio/PodAudio-2019011511270942.mp3",
      "image": "http://demo.web/uploads/podImage/PodImage-20190115112709469.jpg",
      "category": "2",
      "added_date": "माघ १, २०७५",
      "category_title": "उमेर",
      "author": "John Doe",
      "episodes": "2"
    },
    {
      "id": "4",
      "title": "How to remove square brackets from JSON?",
      "description": "",
      "duration": "",
      "audio": "http://demo.web/uploads/podAudio/PodAudio-20190114111541297.mp3",
      "image": "http://demo.web/uploads/podImage/PodImage-20190114102432145.jpg",
      "category": "2",
      "added_date": "पौष ३०, २०७५",
      "category_title": "उमेर",
      "author": "John Doe",
      "episodes": "2"
    }
  ],
  [
    {
      "id": "5",
      "title": "Hello World!",
      "description": "",
      "duration": "",
      "audio": "http://demo.web/uploads/podAudio/PodAudio-20190114111937115.mp3",
      "image": "http://demo.web/uploads/podImage/PodImage-20190114104302103.jpg",
      "category": "1",
      "added_date": "पौष ३०, २०७५",
      "category_title": "गृह पृष्ठ",
      "author": "John Doe",
      "episodes": "1"
    }
  ]
]

В соответствии с рекомендациями @ splash58 и @Vinesh Goyal, я получаю вывод, подобный этому:

[[
{
  "id": "6",
  "title": "Types of loops in PHP.",
  "description": "s.kfjhsdlufdgf o",
  "duration": "0:05:05",
  "audio": "http://demo.web/uploads/podAudio/PodAudio-2019011511270942.mp3",
  "image": "http://demo.web/uploads/podImage/PodImage-20190115112709469.jpg",
  "category": "2",
  "added_date": "माघ १, २०७५",
  "category_title": "उमेर",
  "author": "John Doe",
  "episodes": "2"
},
{
  "id": "4",
  "title": "How to remove square brackets from JSON?",
  "description": "",
  "duration": "",
  "audio": "http://demo.web/uploads/podAudio/PodAudio-20190114111541297.mp3",
  "image": "http://demo.web/uploads/podImage/PodImage-20190114102432145.jpg",
  "category": "2",
  "added_date": "पौष ३०, २०७५",
  "category_title": "उमेर",
  "author": "John Doe",
  "episodes": "2"
}
  ],

    {
      "id": "5",
      "title": "Hello World!",
      "description": "",
      "duration": "",
      "audio": "http://demo.web/uploads/podAudio/PodAudio-20190114111937115.mp3",
      "image": "http://demo.web/uploads/podImage/PodImage-20190114104302103.jpg",
      "category": "1",
      "added_date": "पौष ३०, २०७५",
      "category_title": "गृह पृष्ठ",
      "author": "John Doe",
      "episodes": "1"
    }
]

но как насчет квадратных скобок первых данных?

Ответы [ 3 ]

0 голосов
/ 29 января 2019

в соответствии с вашим кодом, $podcast->getPodcastByCategoryId($id); возвращает массив, чтобы t0 устранить проблему, которую вы можете использовать array_merge function

$podList = $category->getCategoryPodcast();
$episode = [];
if ($podList) {

    foreach ($podList as $items) {

        $id = $items->id;

       $episode = array_merge($episode, $podcast->getPodcastByCategoryId($id)

    } 

}

echo json_encode($episode);

Надеюсь, это поможет вам:)

0 голосов
/ 29 января 2019

Вы можете объединить массивы при получении

$episode = array_merge($episode, $podcast->getPodcastByCategoryId($id)); 

Или сгладить массив результатов перед преобразованием в json

echo json_encode(array_merge(...$episode));

demo

0 голосов
/ 29 января 2019

Следующий фрагмент кода с использованием JavaScript .concat().Это соответствует вашему желаемому результату?

var data = [[
    {
      "id": "6",
      "title": "Types of loops in PHP.",
      "description": "s.kfjhsdlufdgf o",
      "duration": "0:05:05",
      "audio": "http://demo.web/uploads/podAudio/PodAudio-2019011511270942.mp3",
      "image": "http://demo.web/uploads/podImage/PodImage-20190115112709469.jpg",
      "category": "2",
      "added_date": "माघ १, २०७५",
      "category_title": "उमेर",
      "author": "John Doe",
      "episodes": "2"
    },
    {
      "id": "4",
      "title": "How to remove square brackets from JSON?",
      "description": "",
      "duration": "",
      "audio": "http://demo.web/uploads/podAudio/PodAudio-20190114111541297.mp3",
      "image": "http://demo.web/uploads/podImage/PodImage-20190114102432145.jpg",
      "category": "2",
      "added_date": "पौष ३०, २०७५",
      "category_title": "उमेर",
      "author": "John Doe",
      "episodes": "2"
    }
  ],
  [
    {
      "id": "5",
      "title": "Hello World!",
      "description": "",
      "duration": "",
      "audio": "http://demo.web/uploads/podAudio/PodAudio-20190114111937115.mp3",
      "image": "http://demo.web/uploads/podImage/PodImage-20190114104302103.jpg",
      "category": "1",
      "added_date": "पौष ३०, २०७५",
      "category_title": "गृह पृष्ठ",
      "author": "John Doe",
      "episodes": "1"
    }
  ]
];
var mergedData = data[0].concat(data[1]);
console.log(mergedData)
...