заменить пустые значения CSV чем-то - PHP - PullRequest
0 голосов
/ 24 октября 2011

Я использую плагин CSV Import для открытой корзины и по умолчанию полностью пропускает товары, если в них отсутствует какое-либо из полей столбца. В любом случае я могу прочитать файл и заменить все пустые поля на «ноль» или 0 и отправить его обратно к коду.

пропуск этой проверки ниже вызывает смещение в формате чтения / размещения!

    $fh = fopen($file, 'r');
    if(!$fh) die('File no good!');

    // Get headings
    $headings = fgetcsv($fh, 0, $delim);
    $num_cols = count($headings);
    $num_rows = 0;

    //Read the file as csv
    while (($row = fgetcsv($fh, 0, $delim)) !== FALSE) {

         //missed product if num columns in this row not the same as num headings
     if (count($row) != $num_cols) {
        $this->total_items_missed++;
        continue;
        }   


        for ($i=0; $i<count($headings); $i++) {
            $raw_prod[$headings[$i]] = $row[$i];
        }

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Заменить эти две строки

$this->total_items_missed++;
continue;

с

$row = array_pad($row, $num_cols, 0);

Который добавит все пропущенные значения с 0

1 голос
/ 25 октября 2011

попробуй

for($i = 0 ; $i<count($headings) ; $i++){
    if(!empty($row[$i])){
        $raw_prod[$headings[$i]] = $row[$i];
    }else{
        $raw_prod[$headings[$i]] = 0;//or what ever value you want
    }
}
...