Как проверить, в какой строке значение изменяется в CSV-файле? - PullRequest
0 голосов
/ 05 февраля 2020

Я создаю таблицу с номером телефона компании, которые разделены в разных организациях и в других отделах. У меня есть эта информация, сохраненная в CSV-файле.

Мой вопрос: как я могу проверить, когда отдел меняется, чтобы я мог создать интервал или что я могу стилизовать его позже?

This is the Structure of my CSV file.

organization;name;phonenumber;department

PHP скрипт:

function printPhonenumbers($org) {
  $handle = fopen ('csvPHP.csv','r');
  while (($csv_array = fgetcsv ($handle, 0, ';')) !== FALSE ) {
    for ($i=5; $i <= count($csv_array) ; $i=$i+1) {
      if ($csv_array[0] == $org) {
        echo "<tr>";
        echo "<td>".$csv_array[1]."</td>";
        echo "<td>".$csv_array[2]."</td>";
        echo "</tr>";
      }
    }
  }
  fclose($handle);
}

1 Ответ

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

Как указал @matiit, попробуйте запомнить последнее известное значение:

Пример:

function printPhonenumbers($org) {
  $handle = fopen ('csvPHP.csv','r');
  $last_department = null;
  while (($csv_array = fgetcsv ($handle, 0, ';')) !== FALSE ) {
    for ($i=5; $i <= count($csv_array) ; $i=$i+1) {
      if ($last_department != $csv_array[3]) {
         // here the department is different from the previous one. Remember to 'save' the new value
         $last_department = $csv_array[3];
         // do your thing
      } else {
         // still the same department
         if ($csv_array[0] == $org) {
           echo "<tr>";
           echo "<td>".$csv_array[1]."</td>";
           echo "<td>".$csv_array[2]."</td>";
           echo "</tr>";
         }
      }
    }
  }
  fclose($handle);
}
...