php - 向数组添加新索引而不生成“未定义索引”警告

时间:2011-02-17 01:26:49

标签: php arrays indexing

我正在循环一个数组,

如果我在数组中发现错误,我会添加一个名为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的示例

  

阵列(
   [0] =&gt; 1
   [1] =&gt; 12个
   [2] =&gt; 64273566141
   [3] =&gt;面包店
   [4] =&gt; 2009-12-08 09:07:39
   [5] =&gt; 2009年
   [6] =&gt; 2009-12-08 09:08:35
   [7] =&gt;
   [8] =&gt; 0   )

<小时/> 看? Full Size http://webspirited.com/proof.png

1 个答案:

答案 0 :(得分:2)

您使用==代替=

使用比较运算符尝试获取可能未定义的数组索引。如果之前未设置$row['error'],则会触发E_NOTICE未定义的索引错误。