разобрать файл CSV в PHP по столбцам - PullRequest
0 голосов
/ 18 марта 2019

Я хочу открыть файл CSV (значение, разделенное запятыми) в PHP по столбцам, я хочу взять все данные из 3 столбцов.Я пытался с этим кодом, но это только показывает мне данные по строке:

  $row = 1;
    if (($handle = fopen("ut.csv", "r")) !== FALSE) {
      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
      }
      fclose($handle);
    }

Как я могу взять все данные из одного столбца?

ПРИМЕР: Это мой файл в Excel, которыйэкспортируется в SCV: http://prntscr.com/mzcfcw

Я хочу взять значения php из столбцов Name и Price и найти повторяющиеся значения в столбце Name, сравнить их цены.

1 Ответ

1 голос
/ 18 марта 2019

fgetcsv анализирует данный дескриптор строка за строкой (строки). Невозможно проанализировать CSV-файл по столбцу, используя основной PHP. Однако, если вы знаете положение 3 столбцов, для которых вы хотите получить доступ к значениям, вы можете просто проигнорировать все остальные столбцы:

 //position (zero indexed) of required columns
 $columnsToProcess=[0,3,4]
 for ($c=0; $c < $num; $c++) {
 //do something with value if column's index is in the required columns array 
            if(in_array($c,$columnsToProcess)){
                //value at position $c equals $data[$c]
                echo $data[$c] . "<br />\n";
             }          
        }

Моя информация о fgetcsv: http://php.net/manual/en/function.fgetcsv.php

...