I am trying to get JSON from an array but I am getting an extra square bracket in the output.
I tried using $episode[0] = $podcast->getPodcastByCategoryId($id);
but it only gives the incomplete output means it gives data of the first iteration from the array. And if I remove []
from $episode that also gives the data of first iteration.
JavaScript
x
$podList = $category->getCategoryPodcast();
if ($podList) {
foreach ($podList as $items) {
$id = $items->id;
$episode[] = $podcast->getPodcastByCategoryId($id);
}
}
echo json_encode($episode);
I expect to have only one square bracket but I am getting the output with two square brackets.
This is the out I am receiving from the above code:
JavaScript
[
[
{
"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"
}
]
]
According to the recommendation from @splash58 and @Vinesh Goyal, I am getting output like this:
JavaScript
[[
{
"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"
}
]
but, what about the square brackets of first data?
Advertisement
Answer
You can merge arrays while getting
JavaScript
$episode = array_merge($episode, $podcast->getPodcastByCategoryId($id));
Or flatten the result array before converting to json
JavaScript
echo json_encode(array_merge($episode));