【发布时间】:2019-10-23 18:06:07
【问题描述】:
我是 laravel 的新手,我正在制作一个需要将 .CSV 数据导入数据库的应用程序,数据已成功导入,但是我遇到了这个问题:
ErrorException array_combine(): Both parameters should have an equal number of elements
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Accounts;
class AccountController extends Controller
{
public function show(){
return view ('upload');
}
public function store(Request $request){
$file = $request->file('upload-file');
$csvData = file_get_contents($file);
$rows = array_map("str_getcsv", explode("\n", $csvData));
// dd($rows);
$header = array_shift($rows);
// dd($header);
foreach ($rows as $row) {
$row = array_combine($header, $row);
if (count($header) != count($row)) {
continue;
}
set_time_limit(0);
Accounts::create([
'AccountClass' => $row['Classe'],
'AccountNumber' => $row['Compte'],
'AccountDesc' => $row['Desc'],
'active' => 1,
]);
}
return view ('home');
}
}
你能指出我正确的方向吗提前谢谢你
【问题讨论】:
-
在执行 array_combine() 之前将
count($header) != count($row)部分放入并转储它们以查看差异