PHP错误:未定义索引:id
以前我的代码是这样的:PHP错误:未定义索引:id,php,associative-array,Php,Associative Array,以前我的代码是这样的: for ($i=0, $n=sizeof($values); $i<$n; $i++) { $field .= '<option value="' . xtc_parse_input_field_data($values[$i]['id'], array('"' => '"')) . '"'; if ($default == $values[$i]['id']) { $field .= ' selected="selec
for ($i=0, $n=sizeof($values); $i<$n; $i++) {
$field .= '<option value="' . xtc_parse_input_field_data($values[$i]['id'], array('"' => '"')) . '"';
if ($default == $values[$i]['id']) {
$field .= ' selected="selected"';
}
$field .= '>' . xtc_parse_input_field_data($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
for($i=0,$n=sizeof($values);$i'')。“”;
如果($default==$values[$i]['id'])){
$field.=“selected=”selected“;
}
$field.='>'。xtc分析输入字段数据($values[$i]['text'],数组(''''=>'','\'''=>''和''039;','=>'));
}
根据一些建议,我将其改为:
if (is_array($values) && count($values) > 0) {
foreach ($values as $value) {
$field .= '<option value="' . xtc_parse_input_field_data($value['id'], array('"' => '"')) . '"';
if ($default == $value['id']) {
$field .= ' selected="selected"';
}
$field .= '>' . xtc_parse_input_field_data($value['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
}
if(is_数组($value)&&count($value)>0){
foreach($value作为$value){
$field.=''''.xtc_解析输入字段数据($value['text'],数组('''''''=>','\''''=>'&'039;',''=>'));
}
}
但错误依然存在:
注意:未定义的索引:E:\xampp\htdocs\testshop\inc\xtc\u draw\u pull\u down\u menu.inc.php中的id
是什么导致了这个错误?我想说,警告基本上与您粘贴的代码无关,而是与
$value
首先没有名为id
的索引有关。因此,为了修复它,您必须检查源代码,即生成/存储$values
的位置,以了解为什么有些值没有id
话虽如此,为了防止代码中出现不必要的通知,您可以在继续之前添加以下行来测试名为id
的索引是否存在:
if(array_key_exists('id',$value)) {
//do all your stuff
}
您可以在foreach($values as$value){
之后的行下方添加该值,这样,只有当$value
具有id
元素时,才能在循环中执行所有操作
但是,如前所述,如果您希望每个
$value
都有一个id
,请返回生成$value
的位置,检查那里发生了什么。您是否尝试了var\u dump($values)
?另外:错误消息是否包含行号?如果是,是哪一行?我想提醒大家,在要求任何澄清之前,这个问题已经接近2年了。OP可能无法告诉您,$values
是什么样子。在显示的代码中,此错误只能来自两行,两行都是它们可以进行相同的访问。$value['id']
。此代码的结构方式是,值数组需要是关联数组的数字数组。例如,使用$values[]=array(“id”=>“blah”,“text”=>“bleah”)创建是的,我只是在为未来的访问者清理这个,因为这是我在谷歌搜索时得到的最好结果。