Php 为什么我没有列出foreach中的所有行时会得到未定义的偏移量?
我在尝试使用query builder将一些excel数据导入数据库时遇到一个问题,我得到了未定义的偏移量:4,即使我拥有的数据列超过4。数据:。关于foreach有什么我应该知道的吗Php 为什么我没有列出foreach中的所有行时会得到未定义的偏移量?,php,excel,laravel,query-builder,Php,Excel,Laravel,Query Builder,我在尝试使用query builder将一些excel数据导入数据库时遇到一个问题,我得到了未定义的偏移量:4,即使我拥有的数据列超过4。数据:。关于foreach有什么我应该知道的吗 public function collection(Collection $rows) { $no = 1; foreach ($rows as $row) { DB::table('data_train')->insert([ 'no_pendaf
public function collection(Collection $rows)
{
$no = 1;
foreach ($rows as $row) {
DB::table('data_train')->insert([
'no_pendaftaran' => $no,
'nama' => $row[1],
'jalur' => $row[4],
'tahun' => $row[5],
'daftar_kembali' => $row[10],
]);
$no++;
var_dump($row);
}
}
var_dump($row)输出:因为您不知道每个迭代的输出,所以应该首先检查您尝试插入的变量是否实际有任何数据。尝试以下方法:
'jalur' => (! empty($row[4])) ? $row[4] : null,
相同的主体适用于所有插入字段
确保您的db字段接受
null
,否则将null
替换为'
,因为您不知道每次迭代的输出,您应该首先检查您尝试插入的变量是否真的有任何数据。尝试以下方法:
'jalur' => (! empty($row[4])) ? $row[4] : null,
相同的主体适用于所有插入字段
确保您的数据库字段接受可为空的
null
,否则将null
替换为'
'jalur'=>$row[4]??空
或者将其用于不可为空的字段
'jalur'=>$row[4]??“代码>'jalur'=>$row[4]??空
或者将其用于不可为空的字段
'jalur'=>$row[4]??“
行$row
的内容是什么样子的?@Alex我用var\u dump output编辑了这篇文章,请将这些信息以文本形式直接包含在你的问题中-格式正确,如果数据太多,请简化为一个合理的例子。不要在我们必须先下载的外部网站上转储类似的内容。$row
的内容是什么样子的?@Alex我用var_dump output编辑了这篇文章。请以文本形式将这些信息直接包含在您的问题中-格式正确,并简化为一个合理的示例,如果通常有太多数据。不要把这样的东西扔到外部网站上,我们必须先下载。谢谢,但当我添加每一行时,我都出乎意料。@kheengz的答案确实有效,你必须在每一行后面加一个逗号:)这毕竟是一个数组字段,编辑了我的答案谢谢,但当我添加每一行时,我出乎意料。@kheengz的答案确实有效,你必须在每个答案后面加一个逗号:)这毕竟是一个数组字段,编辑了我的答案