PHP Codeigniter未初始化字符串偏移量:
我正试图上传excel文件,获取值并将其保存到数据库中,奇怪的是,当我的excel文件有13行时,出现了未初始化偏移量错误PHP Codeigniter未初始化字符串偏移量:,php,codeigniter,Php,Codeigniter,我正试图上传excel文件,获取值并将其保存到数据库中,奇怪的是,当我的excel文件有13行时,出现了未初始化偏移量错误 if (isset($dataRow)) { foreach($dataRow as $key => $dataVal) : foreach($dataVal as $key => $dataSume) $fArray = $dataSume;
if (isset($dataRow)) {
foreach($dataRow as $key => $dataVal) :
foreach($dataVal as $key => $dataSume)
$fArray = $dataSume;
$y = count ($dataSume);
for($x=0; $x < 1; $x++ ){
if ( isset($fArray) ){
$this->varOrder->addCount($fArray[0],$fArray[1],$fArray[2],$fArray[3],$fArray[4],$fArray[5],$fArray[6],$fArray[7],$fArray[8],$flag2);
}
}
endforeach;
这是系统在行数为13时获得的唯一值
array(1) { [0]=> array(9) { [0]=> string(8) "CC-00057" [1]=> float(124) [2]=> string(6) "grapes" [3]=> float(2) [4]=> string(3) "box" [5]=> string(5) "A1012" [6]=> float(1101) [7]=> float(42111) [8]=> string(4) "a1a1" } }
我试图在for循环之前添加if(isset($fArray))
来捕捉偏移量,但仍然没有成功
这个问题是我的foreach还是for循环
提前谢谢 请输出缩进的
var\u dump
或print\r
的内容。不可能通过一根长绳子来寻找这样的结构。您所要做的就是预先输出一个
元素,或者只查看源代码而不是生成的HTML页面。另外,为什么要对循环使用?您还混合使用了{}
和foreach():
,这意味着代码没有按您所想的那样执行。只是猜测,但检查您的excel末尾是否有多余的空格!!纵横交错horizontally@Varshaan仍然发生偏移错误。当我尝试获取$dataVal时,它只获取excel文件中的最后一个单元格值。@h2ooooooo该值只获取最后一个单元格值。@gerxpaullames,因为正如所解释的,当您使用foreach($dataVal as$key=>$dataSume)$fArray=$dataSume代码>您将立即结束for循环。因此,dataSume
将始终是数组中的最后一项,因为foreach的唯一内容是$fArray=$dataSume代码>。当您忽略括号({}
)和/或冒号(:
)时,缩进代码并不意味着PHP知道您的意思。你的意思是只取最后一个值吗?如果我是另一个阅读此代码的开发人员,我会非常困惑。
array(1) { [0]=> array(9) { [0]=> string(8) "CC-00057" [1]=> float(124) [2]=> string(6) "grapes" [3]=> float(2) [4]=> string(3) "box" [5]=> string(5) "A1012" [6]=> float(1101) [7]=> float(42111) [8]=> string(4) "a1a1" } }