Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Codeigniter未初始化字符串偏移量:_Php_Codeigniter - Fatal编程技术网

PHP Codeigniter未初始化字符串偏移量:

PHP Codeigniter未初始化字符串偏移量:,php,codeigniter,Php,Codeigniter,我正试图上传excel文件,获取值并将其保存到数据库中,奇怪的是,当我的excel文件有13行时,出现了未初始化偏移量错误 if (isset($dataRow)) { foreach($dataRow as $key => $dataVal) : foreach($dataVal as $key => $dataSume) $fArray = $dataSume;

我正试图上传excel文件,获取值并将其保存到数据库中,奇怪的是,当我的excel文件有13行时,出现了未初始化偏移量错误

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" } }