Как вставить конкатенацию массива в CSV-файл? - PullRequest
0 голосов
/ 11 февраля 2020

Я извлекаю значения из файла CSV, читая его, и я хотел бы записать эти значения в файл .txt, и каждая строка файла должна быть такой: MMXC1_ "| 48654641 | 1 | 2

Но когда я отправляю его, я получаю «Уведомление: преобразование массива в строку», что мне делать?

$constante[] = "MMXC1_";

$temp = array_column($resultat, 'MAGCOD', 'MAGAS400');


if (($handle = fopen("$nomcsv", "r")) !== FALSE) { 

    $firstLine = true;

    while (($data = fgetcsv($handle, 1000000, ";")) !== FALSE) 
    {   
        if(!$firstLine) {

            $EAN[] = $temp[$data[3]];
            $min[] = $data[12];
            $max[] = $data[13];


        }
        $firstLine = false;
    }   
}


$data_final[] = $constante.'|'.$EAN.'|'.$min.'|'.$max; 


$cheminfile = "C:/wamp64/www/retail/csv/csv/csv_finaux/MMX".date('His').".txt";

$fp = fopen("$cheminfile", "w");

$delimiter = ';';

fputcsv($fp, $data_final, $delimiter);                              

fclose($fp);

1 Ответ

1 голос
/ 11 февраля 2020

Перепишите ваш код как:

$constante = "MMXC1_";  // it is a STRING

$temp = array_column($resultat, 'MAGCOD', 'MAGAS400');

if (($handle = fopen("$nomcsv", "r")) !== FALSE) { 
    $firstLine = true;
    while (($data = fgetcsv($handle, 1000000, ";")) !== FALSE) 
    {   
        if(!$firstLine) {
            // Create line here and immediately add it to `$data_final`
            $data_final[] = $constante.'|'.$temp[$data[3]].'|'.$data[12].'|'.$data[13]; 
         }
         $firstLine = false;
    }   
}

$cheminfile = "C:/wamp64/www/retail/csv/csv/csv_finaux/MMX".date('His').".txt";
$fp = fopen("$cheminfile", "w");

$delimiter = ';';

fputcsv($fp, $data_final, $delimiter);                              

fclose($fp);
...