繁体   English   中英

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

[英]switch in for loop when storing in arrays

我有一个CSV文件,我获取了每一行数据,然后将它们存储在不同的数组中,该函数可以正常工作,但是使用一个函数比使用switch语句和简单赋值更为有效,但是,因为我正在分配数组,我不确定该怎么做。我也看过类似的问题,但是在我的情况下,我不能将函数用作数组,因为我要分配给不同的变量,感谢有人可以给我更好的替代代码的方法。

 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);
    }

您可以像这样简化代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM