Convertir la respuesta de fgetcsv en json específico

Tengo un archivo .CSV con encabezados:

Description, BusinessSurname, IsCustomer, IsSupplier, AddressType, Business 
Address, IsInternational.

Primera fila:

Contact1, Contact1, True, True, Business, 123 Fake St, False

Las filas restantes no son importantes, es más como eso: ejemplos. Tengo unas pocas filas de datos allí.

Necesito ponerlo en este formato json:

{
Description:'Desc_47AE3208-87F5-4BBA-BE40-AA4130AB4768',
SurnameBusinessName:'Name_Business',
IsCustomer:true,
IsSupplier:true,
Addresses:
[
{AddressType:'Business',Line1:'addr1_bus',IsInternational:false},
{AddressType:'Postal',Line1:'addr1_pos',IsInternational:true}
]
}

He intentado algunas formas diferentes, pero ninguna de ellas específicamente me da un json como este con la dirección anidada. Puedo dejar la segunda dirección (dirección postal).

Si uso este código:

        $filename = 'contacts1.csv';
        $handle = fopen($filename, 'r');
        $count = 0;
        while (($data = fgetcsv($handle)) !== FALSE) {
            $count++;
            if ($count == 1){
                continue;
            }
        $json = json_encode($data, true);
        echo $json;
        };

Me sale esto por ejemplo:

["Contact1","Contact1","TRUE","TRUE","Business","123 High Street Sydney NSW 2000","FALSE"]
["Contact2","Contact2","TRUE","TRUE","Business","124 High Street Sydney NSW 2000","FALSE"]
["Contact3","Contact3","TRUE","TRUE","Business","125 High Street Sydney NSW 2000","FALSE"]

¿Hay alguna manera de obtener el json que necesito, y si no puedo obtener el json requerido automáticamente, hay una manera de extraer los valores de cada fila, asignarlo a una variable y crear manualmente el json requerido para cada fila, utilizando un bucle for, un bucle while, etc. P.EJ:

{
Description: $description,
SurnameBusinessName: $BusinessSurname,
etc...
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta