Boa tarde!
Jedi;
Preciso de um help mega blaster, hoje tenho uma importação funcionando redondo, exceto por um motivo, a empresa terceira mexe na ordenação 
das colunas desse arquivo csv de importação, e sem avisar, acrescentam e retiram colunas... é um inferno na terra...
Meu código é bem simples, ele lê o arquivo csv com php e importa para uma tabela, o que gostaria de fazer e de forma mais inteligente era ele 
entender o nome de cada coluna e importar e salvar na tabela as colunas corretas. Obs.: A única coisa que não muda nesse csv é o nome das colunas, mas elas podem vir e vem em ordens diferentes. 
Segue meu script:
if(isset($_POST["submit"]))
{
	 if($_FILES['file']['name'])
	 {
	  $filename = explode(".", $_FILES['file']['name']);
	  if($filename[1] == 'csv')
	  { 
		/* $codigoUnidade = $_POST["codigoUnid"];
		 $connect = mysqli_connect("localhost", "
xxxxxxxxx", "
xxxxxxxxxxxxx", "
xxxxxxxxxxxxxxx");   
					mysqli_set_charset($connect, 'utf8');					
			        $query ="SELECT empresa.CNAE AS cnae FROM unid_posto INNER JOIN empresa ON empresa.ID=unid_posto.ID_EMP WHERE unid_posto.ID='$codigoUnidade' LIMIT 1";  
					mysqli_set_charset($connect, 'utf8');
			        $result = mysqli_query($connect, $query);  							   
		            while($row = mysqli_fetch_array($result))  
							   {
							   $cnae = $row["cnae"];	
							   }	
							   */   
   $handle = fopen($_FILES['file']['tmp_name'], "r");
   while(($data = fgetcsv($handle, 1000, ";")) !== FALSE )
   {
    mysqli_set_charset($conn, 'utf8');		
$DT_REG = date('Y-m-d H:i:s');
				$STS = "1";	
$ID_ROTA = mysqli_real_escape_string($conn, $data[0]);
				$ROTEIRIZACAO = mysqli_real_escape_string($conn, $data[1]);				
				$ROTA = mysqli_real_escape_string($conn, $data[2]);
				$STS_ROTA = mysqli_real_escape_string($conn, $data[3]);				
				$TIPO_CONCLU = mysqli_real_escape_string($conn, $data[4]);
				$COD_CONCLU = mysqli_real_escape_string($conn, $data[5]);
				$DESC_CONCLU = mysqli_real_escape_string($conn, $data[6]);											
				$DT_ROTA = mysqli_real_escape_string($conn, $data[7]);
				$dtr = explode("/", $DT_ROTA);
				@$d = $dtr[0];
				@$m = $dtr[1];
				@$Y = $dtr[2];
				$DT_ROTA2 = ''.$Y.'-'.$m.'-'.$d.'';				
				$HR_ROTA = mysqli_real_escape_string($conn, $data[8]);
				$ID_SERVICO = mysqli_real_escape_string($conn, $data[9]);
				$SERVICO = mysqli_real_escape_string($conn, $data[10]);
				$STS_SERVICO = mysqli_real_escape_string($conn, $data[11]);				
				$COD_CLIENTE = mysqli_real_escape_string($conn, $data[12]);
				$NM_CLIENTE = mysqli_real_escape_string($conn, $data[13]);
				$NF = mysqli_real_escape_string($conn, $data[14]);
				$NP = mysqli_real_escape_string($conn, $data[15]);				
				$OBS = mysqli_real_escape_string($conn, $data[16]);
				$REG = mysqli_real_escape_string($conn, $data[17]);						
				$DT_REGISTRO = mysqli_real_escape_string($conn, $data[18]);
				$dtrr = explode("/", $DT_REGISTRO);
				@$dr = $dtrr[0];
				@$mr = $dtrr[1];
				@$Yr = $dtrr[2];
				$DT_REGISTRO2 = ''.$Yr.'-'.$mr.'-'.$dr.'';								
				$HR_REGISTRO = mysqli_real_escape_string($conn, $data[19]);
				$COD_OCORR = mysqli_real_escape_string($conn, $data[20]);
				$TIPO_OCORR = mysqli_real_escape_string($conn, $data[21]);
				$DESC_OCORR = mysqli_real_escape_string($conn, $data[22]);
				$COMENT_OPER = mysqli_real_escape_string($conn, $data[23]);
				$ASSINATURAS = mysqli_real_escape_string($conn, $data[24]);
				$FOTOS = mysqli_real_escape_string($conn, $data[25]);
				$DOC_IDENT_CLI = mysqli_real_escape_string($conn, $data[26]);															
		if (($COD_OCORR=="100") OR 
			($COD_OCORR=="999") OR 
			($COD_OCORR=="101") OR 
			($COD_OCORR=="996") OR 
			($COD_OCORR=="997") OR 
			($COD_OCORR=="998") OR 
			($COD_OCORR=="016") OR 
			($COD_OCORR=="112") OR 
			($COD_OCORR=="113") OR 
			($COD_OCORR=="114") OR 
			($COD_OCORR=="115") OR 
			($COD_OCORR=="116") OR 
			($COD_OCORR=="117") OR 
			($COD_OCORR=="118") OR 
			($COD_OCORR=="119") OR 
			($COD_OCORR=="120") OR 
			($COD_OCORR=="122"))
			{
				              mysqli_set_charset($conn, 'utf8');
					$insert = mysqli_query($conn,"INSERT INTO validacao_excel (DT_REG,STS,LOTE_BAIXA,ID_ROTA,ROTEIRIZACAO,ROTA,STS_ROTA,TIPO_CONCLU,COD_CONCLU,DESC_CONCLU,DT_ROTA,HR_ROTA,ID_SERVICO,SERVICO,STS_SERVICO,
					COD_CLIENTE,NM_CLIENTE,NF,NP,OBS,REG,DT_REGISTRO,HR_REGISTRO,COD_OCORR,TIPO_OCORR,DESC_OCORR,COMENT_OPER,ASSINATURAS,FOTOS,DOC_IDENT_CLI) VALUES 
					('$DT_REG', '$STS', '$LOTE_BAIXA', '$ID_ROTA', '$ROTEIRIZACAO', '$ROTA', '$STS_ROTA', '$TIPO_CONCLU', '$COD_CONCLU', '$DESC_CONCLU', '$DT_ROTA2', '$HR_ROTA', 
					'$ID_SERVICO', '$SERVICO', '$STS_SERVICO', '$COD_CLIENTE', '$NM_CLIENTE', '$NF', '$NP', '$OBS', '$REG', '$DT_REGISTRO2', '$HR_REGISTRO', '$COD_OCORR', '$TIPO_OCORR', '$DESC_OCORR', '$COMENT_OPER', 
					'$ASSINATURAS', '$FOTOS', '$DOC_IDENT_CLI')") or die (mysqli_error($conn));
			}				
			//	echo '<pre>';
			//	print_r($data);
			//	echo '</pre>';
   }   
   fclose($handle); 
Diego Teles
Cel.: (21) 990891001