2016-11-25 2 views
0

Я пытаюсь преобразовать CSV-файл в таблицу HTML. В первой части я пытаюсь загрузить все ячейки времени из файла csv в массив времени, ячейки событий в массив событий и ячейки местоположения в массив местоположений.Почему массив пуст?

После fclose($file);, я сделал print_r($time);, и он вернул Array ([0] => Time). Но после get_data($time, $events, $location); я сделал print_r($time); и получил Array(). Почему это пусто? Как я могу загрузить все ячейки времени в массив времени, ячейки событий в массив событий и ячейки местоположения в массив местоположений?

EventsScheduleFriday.csv

Time,Event,Location, 
12:30pm,Hilby The Skinny German Juggle Boy,West State Street, 
4:45pm,Hilby The Skinny German Juggle Boy,West State Street, 
6pm,Finger Lakes Comedy Festival Competition 1st Round (Age 21+),Lot 10, 
8pm,Stand-up Comedy Show,Acting Out NY, 
10pm,All-Star Comedy Show,Acting Out NY 

PHP код:

<?php 
    $time = array(); 
    $events = array(); 
    $location = array(); 

function get_data($time, $events, $location) { 
    $file = fopen(__DIR__."/../data/EventsScheduleFriday.csv", "r"); //read .csv file 
    while(!feof($file)) { //while end of file has not been reached 
     $content = fgetcsv($file, ","); //converts first line of csv to an array 
     array_push($time, $content[0]); 
     array_push($events, $content[1]); 
     array_push($location, $content[2]); 
    } 
    fclose($file); //closes csv file 
} 

get_data($time, $events, $location);  

?> 

ответ

2

Причина это происходит, если потому что вы используете переменные, которые выходят за рамки метода. Когда вы передаете их методу, им присваиваются правильные значения из файла CSV, но они не выходят за пределы метода, когда метод заканчивается. Это то, как PHP обрабатывает переменные и области применения. Что вам нужно сделать, это передать переменные по ссылке. Сделав это, PHP будет нести назначенные значения вне метода.

Чтобы сделать это, вам нужно изменить в строке:

function get_data($time, $events, $location) { 

To:

function get_data(&$time, &$events, &$location) { 
Смежные вопросы