PHP错误:未定义索引:id


PHP Error: Undefined index: id

之前我的代码是这样的:

for ($i=0, $n=sizeof($values); $i<$n; $i++) {
  $field .= '<option value="' . xtc_parse_input_field_data($values[$i]['id'], array('"' => '&quot;')) . '"';
  if ($default == $values[$i]['id']) {
    $field .= ' selected="selected"';
  }
  $field .= '>' . xtc_parse_input_field_data($values[$i]['text'], array('"' => '&quot;', '''' => '&#039;', '<' => '&lt;', '>' => '&gt;')) . '</option>';
}

根据一些建议,我把它改成:

if (is_array($values) && count($values) > 0) {
  foreach ($values as $value) {
    $field .= '<option value="' . xtc_parse_input_field_data($value['id'], array('"' => '&quot;')) . '"';
    if ($default == $value['id']) {
      $field .= ' selected="selected"';
    }
    $field .= '>' . xtc_parse_input_field_data($value['text'], array('"' => '&quot;', '''' => '&#039;', '<' => '&lt;', '>' => '&gt;')) . '</option>';
  }
}

但是错误仍然存在:

注意:未定义的索引:id在E:'xampp'htdocs'testshop'inc'xtc_draw_pull_down_menu.inc.php

是什么导致这个错误?

我想说,这个警告基本上与您粘贴的代码片段没有任何关系,而是与$value首先没有名为id的索引这一事实有关。因此,为了修复它,您必须检查源- $values生成/存储的地方,看看为什么有一些没有id的值。

话虽如此,在继续之前,为了防止代码中出现不必要的通知,可以添加以下行来测试名为id的索引是否存在:

if(array_key_exists('id',$value)) {
   //do all your stuff
}

您可以在foreach ($values as $value) {之后的行下面添加这个,这样您在循环中所做的一切都只在$value具有id元素时才会发生。

然而,如前所述,如果您希望每个$value都肯定有一个id,请回到生成$values的地方并检查那里发生了什么。