Criar Novo Array se Caso outro existir

Olá Tenho Esse Código Php:

            $Name = $_POST["Name"];
            $sobrenome = $_POST["sobrenome"];
            $data= $_POST["data"];
            $data = array(
                array(
                    "nome" => $Name,
                    "sobrenome" => $sobrenome ,
                    "data" => $data,
                ),
            );
            $arquivo = 'form.json';
            $json = json_encode($data);
            $file = fopen(__DIR__ . '/' . $arquivo,'w');
            fwrite($file, $json);
            fclose($file);

como você pode ver ele converte meu formulário em array e salva em um arquivo json até ai tudo bem , mais o problema é que se eu enviar o formulário mais de uma vez ele subscreve os dados atuais , como eu poderia criar um novo array cada o ele já exista?

Você tem que carregar o arquivo Json, transformar em array (essa parte talvez possa ser evitada), fazer push do novo array e salvar o arquivo.

Tem algum artigo de algum blog que dê alguma base de como fazer isso?

//lendo conteúdo do arquivo
$str = file_get_contents(__DIR__ . '/' . $arquivo);
//decodificando conteúdo JSON
$decoded = json_decode($str, true);

//adicionando os dados ao array
$decoded[] = array(
                    "nome" => $Name,
                    "sobrenome" => $sobrenome ,
                    "data" => $data,
                );

//salvar $decoded no arquivo