I used stacked ternary operators to solve my issue, but i'm still opened to a more elegant way of doing this
$output['Family'] = (isset($temp['VernNamesSelected']['Family']) && isset($temp['GenusSelected']['Family']) && isset($temp['SpeciesSelected']['Family']) ? array_intersect($temp['VernNamesSelected']['Family'],$temp['GenusSelected']['Family'],$temp['SpeciesSelected']['Family']) :
(isset($temp['VernNamesSelected']['Family']) && isset($temp['GenusSelected']['Family']) && !isset($temp['SpeciesSelected']['Family']) ? array_intersect($temp['VernNamesSelected']['Family'],$temp['GenusSelected']['Family']) :
(isset($temp['VernNamesSelected']['Family']) && !isset($temp['GenusSelected']['Family']) && isset($temp['SpeciesSelected']['Family']) ? array_intersect($temp['VernNamesSelected']['Family'],$temp['SpeciesSelected']['Family']) :
(!isset($temp['VernNamesSelected']['Family']) && isset($temp['GenusSelected']['Family']) && isset($temp['SpeciesSelected']['Family']) ? array_intersect($temp['GenusSelected']['Family'],$temp['SpeciesSelected']['Family']) :
(isset($temp['VernNamesSelected']['Family']) && !isset($temp['GenusSelected']['Family']) && !isset($temp['SpeciesSelected']['Family']) ? $temp['VernNamesSelected']['Family'] :
(!isset($temp['VernNamesSelected']['Family']) && isset($temp['GenusSelected']['Family']) && !isset($temp['SpeciesSelected']['Family']) ? $temp['GenusSelected']['Family'] :
(!isset($temp['VernNamesSelected']['Family']) && !isset($temp['GenusSelected']['Family']) && isset($temp['SpeciesSelected']['Family']) ? $temp['SpeciesSelected']['Family'] :
NULL)))))));
$output['Genus'] = (isset($temp['VernNamesSelected']['Genus']) && isset($temp['GenusSelected']['Genus']) && isset($temp['SpeciesSelected']['Genus']) ? array_intersect($temp['VernNamesSelected']['Genus'],$temp['GenusSelected']['Genus'],$temp['SpeciesSelected']['Genus']) :
(isset($temp['VernNamesSelected']['Genus']) && isset($temp['GenusSelected']['Genus']) && !isset($temp['SpeciesSelected']['Genus']) ? array_intersect($temp['VernNamesSelected']['Genus'],$temp['GenusSelected']['Genus']) :
(isset($temp['VernNamesSelected']['Genus']) && !isset($temp['GenusSelected']['Genus']) && isset($temp['SpeciesSelected']['Genus']) ? array_intersect($temp['VernNamesSelected']['Genus'],$temp['SpeciesSelected']['Genus']) :
(!isset($temp['VernNamesSelected']['Genus']) && isset($temp['GenusSelected']['Genus']) && isset($temp['SpeciesSelected']['Genus']) ? array_intersect($temp['GenusSelected']['Genus'],$temp['SpeciesSelected']['Genus']) :
(isset($temp['VernNamesSelected']['Genus']) && !isset($temp['GenusSelected']['Genus']) && !isset($temp['SpeciesSelected']['Genus']) ? $temp['VernNamesSelected']['Genus'] :
(!isset($temp['VernNamesSelected']['Genus']) && isset($temp['GenusSelected']['Genus']) && !isset($temp['SpeciesSelected']['Genus']) ? $temp['GenusSelected']['Genus'] :
(!isset($temp['VernNamesSelected']['Genus']) && !isset($temp['GenusSelected']['Genus']) && isset($temp['SpeciesSelected']['Genus']) ? $temp['SpeciesSelected']['Genus'] :
NULL)))))));
$output['Species'] = (isset($temp['VernNamesSelected']['Species']) && isset($temp['GenusSelected']['Species']) && isset($temp['SpeciesSelected']['Species']) ? array_intersect($temp['VernNamesSelected']['Species'],$temp['GenusSelected']['Species'],$temp['SpeciesSelected']['Species']) :
(isset($temp['VernNamesSelected']['Species']) && isset($temp['GenusSelected']['Species']) && !isset($temp['SpeciesSelected']['Species']) ? array_intersect($temp['VernNamesSelected']['Species'],$temp['GenusSelected']['Species']) :
(isset($temp['VernNamesSelected']['Species']) && !isset($temp['GenusSelected']['Species']) && isset($temp['SpeciesSelected']['Species']) ? array_intersect($temp['VernNamesSelected']['Species'],$temp['SpeciesSelected']['Species']) :
(!isset($temp['VernNamesSelected']['Species']) && isset($temp['GenusSelected']['Species']) && isset($temp['SpeciesSelected']['Species']) ? array_intersect($temp['GenusSelected']['Species'],$temp['SpeciesSelected']['Species']) :
(isset($temp['VernNamesSelected']['Species']) && !isset($temp['GenusSelected']['Species']) && !isset($temp['SpeciesSelected']['Species']) ? $temp['VernNamesSelected']['Species'] :
(!isset($temp['VernNamesSelected']['Species']) && isset($temp['GenusSelected']['Species']) && !isset($temp['SpeciesSelected']['Species']) ? $temp['GenusSelected']['Species'] :
(!isset($temp['VernNamesSelected']['Species']) && !isset($temp['GenusSelected']['Species']) && isset($temp['SpeciesSelected']['Species']) ? $temp['SpeciesSelected']['Species'] :
NULL)))))));