Laravel 5.5 : array_combine(): 两个参数应该有相同数量的元素

Laravel 5.5 : array_combine(): Both parameters should have an equal number of elements

我有一个要插入到数据库中的 csv table,我删除了 headers 以便在我使用 foreach 获取行值时可以将其合并为参考.数据确实插入到数据库 table 中,但在 array_combined 中抛出了一个错误 both parameters should have an equal number of elements 。我检查了单行上的 header 数组和 dd(),元素编号相同。但是在我完成 post.

之后错误仍然存​​在
$rows = array_map('str_getcsv', explode("\n",$csvData) );
$header = array_shift($rows);

      foreach($rows as $row )
        {
                $row = array_combine($header, $row);
                People::create([
                    'name' => $row['Name'],
                    'surname' => $row['Surname'],
                    'age' => $row['Age'],
                    'sex' => $row['Sex'],
                    'note' => $row['Note'],
                    'list_id' => $list_num
                ]);
        }

我认为问题可能出在最后一行。

您可以验证替换的确切问题是什么:

$row = array_combine($header, $row);

与:

if (count($header) != count($row)) {
  dd($header, $row);
}

在您的情况下,在跟踪问题后您可以简单地跳过该行,例如:

if (count($header) != count($row)) {
  continue;
}