Ho seguito più o meno la tua traccia e non solo...
ho tirato fuori ciò :
Codice PHP:
$file ="debitori/$_SESSION[nomeut]-$_SESSION[fisc].csv";
$apro = fopen($file, "r");
$cambio = array (0 => $_SESSION['id'] , 1 => $_POST['cli'] , 2=> $_POST['rag'] ,3=> $_POST['ind'] ,4=>$_POST['cit'] ,5=>$_POST['pro'] ,6=> $_POST['zip'] ,7=> $_POST['te1'],8=> $_POST['te2'],9=> $_POST['fax'],10=> $_POST['mai'],11=> $_POST['iva'],12=> $_POST['fis'],13=> $_POST['rif'],14=> $_POST['dri'] ,15=> $_POST['dre']);
$rag=$_POST['rag'];
$data = array();
if (isset ($rag)){
$vettore = file($file);
$counter = count($vettore);
$vett = fgetcsv($apro, 0, ";");
$numcampi = count($vett);
for ($i=0;$i<$counter;$i++){
$esplosione = explode(";", $vettore[$i]);
$data[$i] = $esplosione;
}
for ($c = 1 ; $c <= $counter ; $c++){
for ($j = 1 ; $j <= $numcampi ;$j++){
[COLOR=RED] if ($data[$c][$j] === "$rag"){[/COLOR]
$sostituzione = array_splice($vettore, $vettore[$c], count($vettore[$c]), $cambio);
break;
}
}
}
$vettoreimploso = array(implode(";",$vettore));
$data = $vettoreimploso;
$counter_2=count($data);
$fpf2 = fopen($file, "w+");
for ($s = 0 ; $s < $counter_2 ; $s++){
$fw2 = fwrite($fpf2, "$vettoreimploso[$s]\n");
}
if ($fw2){
echo "ha scritto " . $vettoreimploso;
}
fclose($fpf2);
fclose($apro);
}
ho riscontrato un 'problemino' che non riesco a rimettere a posto.
Ho cercato di fare ciò:
apro il file e lo tratto come se fosse un array, inserisco i dati esplosi.
in un'altro array ($cambio) prendo tramite post i valori che dovrò modificare.
prendo da $cambio l'unico paramentro univoco per fare il confronto con $data.
se esiste l'uguaglianza tra i 2 sostituisco l'array con array_split e poi riscrivo il file da 0.
Il problema penso che sia proprio sulla condizione if in rosso.
il risultato è una bella sostituzione ma non nel posto in cui voglio; sembra che al posto di eliminare la linea giusta mi elimina quelle precedenti .
non so se mi sono spiegato , mi sto perdendo 
grazie dell'aiuto io sto