首页 > 解决方案 > 查找错误 array_combine(): Both parameters should have a equal number of elements

问题描述

我正在将 CSV 文件导入 Laravel 控制器并将数据插入两个表中,但出现错误-

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

function csvToArray ($filename = '', $delimiter = ',')
{
If (! file_exists ($filename) ||!is_readable($filename))
return false;
$header = null;
$data = array ();
if (($handle = fopen ($filename,'r')) !== false)
{
   while (($row = fgetcsv($handle, 300000, $delimiter)) !== false)
     {
      if (!$header)
       $header = $row;
      else
      $data[] = array_combine($header, $row);
     }
    fclose($handle);
}
return $data;
}

public function importCsv()
{
$file = public_path('file/city_master.csv');
$customerArr_data = $this->csvToArray($file);
for ($i = 0; $i < count($customerArr_data); $i++)
{
dd($customerArr_data);
}
return 'not in array';    
}

标签: laravel

解决方案


请尝试array_merge()改用。希望这可以帮助


推荐阅读