Agrupar dados no json

Bom dia

Preciso fazer um agrupamento no arquivo que vai ser gerado em json. Meu codigo esta assim

sc_select(resultado, "SELECT CCARGA.placa
, CCARGA.DATA
, CCARGA.DTEXPEDICAO
, CCARGA.CARGA
, ICARGA.CLIENTE
, ICARGA.NRNOTA
, CAST(CNF.DTENTREGA as time) AS HORA_ENTREGA
, ICARGA.VALOR
, INF.CODPROD
FROM CCARGA
INNER JOIN ICARGA ON CCARGA.CARGA = ICARGA.CARGA
INNER JOIN CNF ON CNF.SERIE = ICARGA.SERIE AND CNF.NRNFCF = ICARGA.NRNOTA
INNER JOIN INF ON CNF.SERIE = INF.SERIE AND CNF.NRNFCF = INF.NRNFCF
where CCARGA.DATA = ‘[dataenvio]’
");

{

$produtos = array();

while (!$resultado->EOF)

{

$produtos[] = array(‘PlacaVeiculo’=> $resultado->fields[0],‘DataSaida’=> $resultado->fields[1],‘Entrega’=> array(‘CodigoCliente’=> $resultado->fields[4],‘Nf’=> $resultado->fields[5],‘NfValor’=> $resultado->fields[7]),‘Produto’=> array($resultado->fields[8]));

$resultado->MoveNext();
}

$resultado->Close();

echo json_encode($produtos);

}

Assim ele gerar, mais eu preciso agrupar, um exemplo todas as entregas que são do mesmo veiculo.
Ex.
{

 "PlacaVeiculo":"AAA0000",
 "DataSaida":"01\/08\/2017",
 "DataFim": "07\/08\/2017",
 "NumeroCarga": 12345,
 "Entregas":[
				{
					 "CodigoCliente":37,
					 "Nf":987654,
					 "HoraMaximaEntrega" : "07:35:00",
					 "NfValor":200.50,
					 "Produtos":[ 123, 1234 ]
				 }
				 ,
				 {
					 "CodigoCliente":55,
					 "HoraMaximaEntrega" : "10:00:00",
					 "Nf":123789,
					 "NfValor":150.75,
          					 "Produtos":[ 159, 1237 ]
				 }
				 ,
				 {
					 "CodigoCliente":58,
					 "Nf":984523,
					 "NfValor": 0,
	         			 "Produtos":[]
				 }
			]

alguém teria um exemplo para me ajudar.

...
$produtos[$resultado->fields[0]][]= array(‘DataSaida’=> $resultado->fields[1],‘Entrega’=> array(‘CodigoCliente’=> $resultado->fields[4],‘Nf’=> $resultado->fields[5],‘NfValor’=> $resultado->fields[7]),‘Produto’=> array($resultado->fields[8]));
...

Normalmente em json eu uso sc_lookup e vou agrupando as chaves com diversos sc_lookups,
amarrados ao registro ‘PAI’, ai fica fácil de agrupar elas por camada, um exemplo prático:

/* Macro sc_lookup */

$sql ="
SELECT
    Plano,
    Codigo,
	Nome,
    DataNascimento
FROM
    associados
WHERE
    Plano='P' AND Codigo=1000
";

sc_lookup(chk_cli, $sql);

/* Erro no lookup */
if (FALSE === {chk_cli}) {
	sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({chk_cli})) { /* EOF */

	sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");
}
else {

	/* Inclua aqui sua rotina de processamento */
	
	$sql ="
	SELECT
		NumeroSequencia,
		Nome,
		TipoDependente
	FROM
		dependentes
	WHERE
		Plano='P' AND Codigo=1000
	";

	sc_lookup(chk_dep, $sql);
	
	$_chave2=array(); // Usando o sc_lookup pode-se criar facilmente quantas chaves agrupadas quiser, depois só adicionar
	                  // na chave raiz ou subchaves.
	
	foreach($chk_dep as $_linha) {
    	array_push($_chave2, array('Nro' => $_linha[0], 'Nome' => $_linha[1], 'Parentesco' => $_linha[2]));
	}

    $_chave1 = array('Plano' => {chk_cli[0][0]},
				     'Código' => {chk_cli[0][1]},
				     'Nome' =>  {chk_cli[0][2]},
				     'Nascimento' => {chk_cli[0][3]},
					 'Dependentes' => $_chave2
				    );
	
	echo json_encode($_chave1);
	
		
}

Deu certo, mas ta colocando registros repetidos 4x, e a $_chave1 não repete

Lembre de usar o WHERE nos SQL para filtrar só o registro PAI raiz e o WHERE nos que vão ficar dentro dele ai não vai repetir, ai você tem que testar e adaptar a suas tabelas e campos.

Pessoal desculpa a demora, mas consegui resolver, muito obrigado pela ajuda. vou colocar como ficou meu codigo para servir de exemplo

$data = sc_date_conv({chk_cli[0][1]},“db_format”,“dd/mm/aaaa”);

$json=array();

foreach($chk_cli as $_linha) {
$produtos = explode(’,’, $_linha[8]);
//$produtos = array_map(‘intval’, $produtos);
Foreach($produtos as & $p) $p = intval($p);
$placa = (string)$_linha[0];

if(!isset($json[$placa]))
    $json[$placa] = array (
        'PlacaVeiculo' =>$placa,
        'NumeroCarga' => $_linha[3],
        'DataSaida' => $data,
    );

$json[$placa]['Entregas'][] = array('CodigoCliente' => $_linha[4], 'Nf' => $_linha[5], 'NfValor' => $_linha[7], 'Produtos' => $produtos);

}

echo json_encode(array_values($json));

}