PHP错误:未定义的索引:id

时间:2014-05-18 18:29:57

标签: php associative-array

以前我的代码看起来像这样:

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>';
  }
}

但错误仍然存​​在:

  

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

造成此错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

我会说警告基本上与您粘贴的代码没有任何关系,而是与$value没有名为{{1}的索引的事实有关。首先。因此,为了修复它,您必须检查源 - 生成/存储id的位置,以查看为什么有一些没有id的值。

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

id

您可以在if(array_key_exists('id',$value)) { //do all your stuff } 之后的行下面添加此项,这样,只有foreach ($values as $value) {具有$value元素时才会在循环内执行所有操作。

但如前所述,如果您希望每个id肯定都有$value,请返回生成id的位置并查看其中的内容。