我循环一个数组,
如果我在数组中发现错误,我会添加一个名为error的键.
但是我得到了一堆’未定义的索引’错误’警告.
如何在不生成警告的情况下执行此操作?
代码请求
$csv = array();
if (($handle = fopen($filePath, "r")) !== FALSE) {
while (($csv[] = fgetcsv($handle)) !== FALSE);
fclose($handle);
}
foreach ($csv as &$row) {
if (count($row) > $maxCols)
$maxCols = count($row);
if (count($row) == 0) {
$errors++;
$row['error'] = 'Empty Column!';
continue;
}
//more code
}
在foreach()中$row的样子示例
Array (
[0] => 1
[1] => 12
[2] => 64273566141
[3] => bakery
[4] => 2009-12-08 09:07:39
[5] => 2009
[6] => 2009-12-08 09:08:35
[7] =>
[8] => 0
)
看到? Full Size
http://webspirited.com/proof.png
最佳答案 你正在使用==而不是=.
使用比较运算符尝试获取可能未定义的数组索引.如果之前未设置$row [‘error’],则会触发E_NOTICE未定义的索引错误.