在数组中存储时切换到for循环

时间:2016-01-28 22:04:46

标签: php arrays

我有一个CSV文件,我得到每一行数据,然后将它们存储在不同的数组中,这个功能工作正常,但是使用一个函数而不是使用switch语句和简单的赋值更有效,但是,因为我是分配数组,我不知道怎么做,我也看了similar question但是在我的情况下我不能将函数作为数组,因为我分配给不同的变量,我很感激,如果有人可以让我更好地替代我的代码。

 if (($handle = fopen($input, "r")) !== FALSE) {
        fgetcsv($handle, 100000, ",");
        while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
            $num = count($data);
            for ($c = 0; $c < $num; $c++) {
                switch ($c):
                    case(0):
                        $urls404[] = $data[$c];
                        break;
                    case(3):
                        $detected[] = $data[$c];
                        break;
                    case(5):
                        $platform[] = $data[$c];
                        break;
                    case(7):
                        $redirects[] = $data[$c];
                        break;
                endswitch;
            }
        }
        fclose($handle);
    }

1 个答案:

答案 0 :(得分:2)

您可以像这样简化代码:

while (($data = fgetcsv($handle, 100000, ",")) !== FALSE) {
    $urls404[] = $data[0];
    $detected[] = $data[3];
    $platform[] = $data[5];
    $redirects[] = $data[7];
}