Я читаю CSV-файл, который содержит эти значения:
; ;WH;391;M;9353970157191;A1124;0010;TU;1; ;7/1/2019;0;0;
; ;WH;391;M;9353970157214;A1119;0090;TU;1; ;7/1/2019;0;0;
....
В конце я получаю файл .txt, который выглядит примерно так:
MMXC1_|A0391|9353970395487|0|0
MMXC1_|A0391| |1|0 //$SKU_EAN NULL
MMXC1_|A0391|9353970394879|4|2
...
Но иногда $ SKU_EAN NULL, потому что у него нет соответствующего кода sku_code
. Я бы хотел исключить строки, в которых $ SKU_EAN равен NULL, из моего файла .txt и отобразить их на экране с кодом sku_code и номером соответствующего строка в файле CSV, как я могу это сделать?
$resultat = mysqli_query($bdd, "SELECT trim(concat(concat(SKU_ITEM_VARIANT,'_'),trim(SKU_SIZE)))as sku_code , SKU_EAN FROM dwh_dev.dwh_d_sku");
while ($donnees[] = mysqli_fetch_assoc($resultat)) {
// var_dump($donnees); //array(1) { [0]=> array(2) { ["sku_code"]=> string(13) "A1101_0090_TU" ["SKU_EAN"]=> string(13) "9346799868270" } } array(2) { [0]=> array(2) { ["sku_code"]=> string(13) "A1101_0090_TU" ["SKU_EAN"]=> string(13) "9346799868270" }....
}
$constante = "MMXC1_";
$temp = array_column($datas_mag, 'MAGCOD', 'MAGAS400');
$temp2 = array_column($donnees, 'SKU_EAN', 'sku_code');
if (($handle = fopen("$nomcsv", "r")) !== FALSE) {
$firstLine = true;
while (($data = fgetcsv($handle, 1000000, ";")) !== FALSE)
{
if(!$firstLine) {
$EAN = 'A'.$temp[$data[3]];
$SKU_EAN = $temp2[$data[6].'_'.$data[7].'_'.$data[8]];
var_dump($SKU_EAN); //string(13) "9353970395487" string(13) "9346799046166" NULL NULL string(13) "9346799046756"...
$data_final[] = $constante.'|'.$EAN.'|'.$SKU_EAN.'|'.$data[12].'|'.$data[13];
var_dump($data_final); //array(1) { [0]=> string(30) "MMXC1_|A0391|9353970395487|0|0" }
}
$firstLine = false;
}
}
$cheminfile = "//alcyons/IT/PhotoShoot/retail/CSV/TXT_Finaux/MMX".date('His').".txt";
$fp = fopen("$cheminfile", "w");
foreach($data_final as $data){
fwrite($fp,$data."\n");
}
fclose($fp);