PHP - 循环内的数组返回空


PHP - Array inside the loop returns empty

我正在尝试通过CSV上传将数据添加到2个不同的MySql表中。我已经能够检索信息并将部分信息上传到一个表,但是在将数据发送到第二个表时遇到问题。我想出了以下代码:

$i = 0;
//Loop through the csv file
do {
    if ($data[0]) {
        //Store request information
        //Info for Request Table
        $requester_email = $data[0];
        $requester_name = $data[1];
        $client_name = $data[2];
        $client_country = $data[3];
        $opportunity_number = $data[4];
        $machine_quantity = $data[5];
        $severity = $data[6];
        //Store machine values
        //Info for Serial Numbers Table
        $serialType = array();
        $serialModel = array();
            $serialType[$i] = $data[7];
            $serialModel[$i] = $data[8];
    }
    $i++;
} while ($data = fgetcsv($handle,1000,",","'"));

我的阵列有问题。我只能存储 csv 文件中最后一行的 serialType 和 serialModel。例如,如果 csv 文件有 3 行数据:

( [0] => 空 [1] => 空 [2] => 最后一个值正常)

为什么我无法存储其他两个值?

只需移动

$serialType = array();
$serialModel = array();

在脚本中do之前。虽然它仍然在 do 循环中,但它只是每次迭代do - while范围内的一个初始化变量并清理它。

$i = 0;
$serialType = array();
$serialModel = array();
while ($data = fgetcsv($handle,1000,",","'")) {
...
    $serialType[$i] = $data[7];
    $serialModel[$i] = $data[8];
    $i++;
};