Crie o JSON em PHP usando o database

Eu tenho essa consulta que eu executei para coletar dados de três tabelas. Eu quero criar JSON a partir desses dados reunidos. Escrevi o seguinte script para criá-lo. Por favor, guie-me se houver alguma solução rápida ou inteligente para fazer isso.

Este é o instantâneo do resultado do meu database do qual eu preciso criar o JSON:

Dados coletados de 3 tabelas usando associações

O script que estou usando é esse.

$jsonarray = array(); while ($i Array("name" => $result[$i]['chanct_name'])); $id = $result[$i]['chanct_id']; while($id == $result[$i]['chanct_id']) { $content[] = Array( "Channel Name" => $result[$i]['con_name'], "image" => $result[$i]['con_image']); $i++; } $jsonarray[][] = Array($channel_cat, $content); unset($content); } echo json_encode($jsonarray); 

Isso me dá resultados colados abaixo.

 [[[{"Channel Category":{"name":"Movie"}}, [{"Channel Name":"Channel1","image":"Thanks.jpg"}, {"Channel Name":"Channel2","image":"Thanks.jpg"}, {"Channel Name":"Channel4","image":"amazon-logo-b_tpng.png"}, {"Channel Name":"High","image":"Thanks.jpg"}]]] ,[[{"Channel Category":{"name":"Documentary"}}, [{"Channel Name":"Channel7","image":"amazon-logo-b_tpng.png"}]]]] 

No entanto, estou à procura do resultado abaixo.

 { "channelsCategories": [ { "name":"Movie", "image": "MoviePoster", "contents": [ { "name":"Channel 1", "image":"Thanks.jpg", }, { "name":"Channel 2", "image":"Thanks.jpg", }, { "name":"Channel 4", "image":"amazon-logo...", }, { "name":"High", "image":"Thanks.jpg", } ] }, { "name":"Documentary", "image": "MoviePoster", "contents": [ { "name":"Channel 7", "image":"amazon.....", } ] } ] } 

Qualquer ajuda ou orientação será realmente útil.

Tente isso, ele lhe dará o resultado que você espera:

 $typeArr = array(); foreach($result as $a){ $typeArr[$a['chanct_name']][] = array( 'name'=>$a['con_name'], 'image'=>$a['con_image'] ); } $jsonarray = array(); foreach($typeArr as $type=>$contents){ $jsonarray['channelsCategories'][] = array( 'name'=>$type, 'contents'=>$contents ); } echo json_encode($jsonarray);