Большое спасибо всем за помощь. Мне удалось заставить это работать, создав массив, как Дэв предложил выше. Код немного уродливый, но он делает свою работу - я новичок в php, и я собрал это из примеров, которые я нашел в сети.
Последний вопрос: я использую функцию разнесения для разделения файла CSV на основе запятых. Боюсь, что это не сработает, если в одном из моих полей есть несколько запятых, например, адрес: 123 Elm Street, Bethesda, Maryland 20816. Я бы предпочел использовать fgetcsv при создании массива, но я не уверен как это сделать. Кто-нибудь может мне помочь?
Кроме того, str_getcsv, похоже, не поддерживается версией php на моем хостинге, поэтому он не работает для меня.
Вот код, который я использовал до сих пор - он дает мне отличный результат на основе моего простого файла CSV, который я опубликую ниже.
Код:
<?PHP
// set the number of columns you want
$columns = 4;
// count up number of lines in your CSV file
$file_handle = fopen("CSV Team Example.csv", "r");
$row = 0;
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
$row++;
}
$number_of_rows = $row;
fclose($file_handle);
// calculate number of rows per column
$rows_per_column = ceil($number_of_rows / $columns);
// create your array
$lines =file('CSV Team Example.csv');
foreach($lines as $data)
{
list($name[],$team[],$team_position[])
= explode(',',$data);
}
// make your table
echo "<TABLE BORDER=\"0\">\n";
//here we changed the condition to $i < $rows_per_column
for($i = 0; $i < $rows_per_column; $i++) {
echo "<TR>\n";
//here will run another loop for the amount of columns
for($j = 0; $j < $columns; $j++) {
echo "<td width = '200' position = '" . $team_position[$i + ($j * $rows_per_column)] . "'>". $name[$i + ($j * $rows_per_column)] . " <br> " . $team [$i + ($j * $rows_per_column)] . "</td>\n";
}
echo "</TR>\n";
}
echo "</TABLE>\n";
?>
Вот мой CSV-файл: CSV Team Example.csv. Первый столбец - имя игрока, второй столбец - название команды, а третий столбец - позиция, которую они играют.
Scott L. Aranda,Red Devils,Offense
Todd D. Smith,Blue Streaks,Offense
Edward M. Grass,Red Devils,Defense
Aaron G. Frantz,Blue Streaks,Defense
Ryan V. Turner,Red Devils,Offense
Belinda J. Bridges,Red Devils,Defense
Raymond P. Webb,Blue Streaks,Offense
Allison M. Elwell,Blue Streaks,Defense
Melinda B. Savino,Blue Streaks,Offense
Wendy R. Lane,Red Devils,Offense
Gordon Q. Farmer,Blue Streaks,Defense
William F. Lawrence,Red Devils,Offense
Christa L. Limones,Blue Streaks,Offense
Sandra C. Singleton,Red Devils,Offense
Keshia M. Garcia,Blue Streaks,Defense
Margaret A. Arnold,Red Devils,Defense
Paul S. Gonzalez,Blue Streaks,Offense
Mark V. Stocks,Red Devils,Defense
Elizabeth J. Quinn,Red Devils,Offense
Rusty M. Collette,Red Devils,Offense
Myra L. Armstrong,Blue Streaks,Defense
William B. Stewart,Blue Streaks,Defense
Erin J. Hoch,Red Devils,Defense
Robin S. Meredith,Blue Streaks,Offense
Sherie D. Lee,Red Devils,Offense
Michael A. Whitney,Blue Streaks,Defense
Louis R. Ochoa,Red Devils,Defense
Paul R. Garcia,Blue Streaks,Offense
Chester A. Bailey,Red Devils,Defense
Johnny B. Coover,Red Devils,Defense
Emily K. Wright,Red Devils,Offense
Perry D. Desmarais,Red Devils,Offense
Judie J. Burns,Blue Streaks,Defense
Martin L. Dunn,Blue Streaks,Defense
Stephanie C. Rose,Blue Streaks,Defense
Don T. Grimes,Blue Streaks,Offense
Robert C. Devito,Blue Streaks,Offense
Michael J. Taylor,Red Devils,Defense
Melissa D. Bush,Red Devils,Offense