为什么我会收到错误消息;注意:未定义索引:格式…“;在php中?

为什么我会收到错误消息;注意:未定义索引:格式…“;在php中?,php,Php,当我运行PHP代码时,它会给出一条错误消息“注意:未定义的索引:第39行的C:\xampp\htdocs\playit2\scripts\session.PHP格式” 这是我的HTML代码。 $my_items = array(); $jsql_e = mysql_query("select request_list.id, request_list.formats, request_list.product_id, request_list.sent_on, request_list.ret

当我运行PHP代码时,它会给出一条错误消息“
注意:未定义的索引:第39行的C:\xampp\htdocs\playit2\scripts\session.PHP格式”

这是我的HTML代码。

$my_items = array();

$jsql_e = mysql_query("select request_list.id, request_list.formats, request_list.product_id, request_list.sent_on, request_list.return_on, products.name, products.certificate from request_list, products where request_list.email='$visit_email' and request_list.sent='1' and request_list.returned='1' and products.id=request_list.product_id") or die(mysql_error());

$jarr_rent_list_history = array();

while($jfet_e = mysql_fetch_assoc($jsql_e)){
    $jfet_e = array_filter($jfet_e);
    if(count($jfet_e) > 0){ array_push($jarr_rent_list_history, $jfet_e); }
}

foreach($jarr_rent_list_requested as $item_arr){
    if((count($item_arr) > 0) && (strlen($item_arr['product_id']) > 0)){
        array_push($my_items, $item_arr['product_id'], $item_arr['formats']);
    }
} 

错误出现在“
if((count($item_arr)>0)&&(strlen($item_arr['product_id'])>0){
”和“formats”是一种id类型。

未定义的索引表示确切地说是


$item\u arr['formats']
未定义。使用前应检查是否已定义

根据您的情况,可能会起作用。您能处理
格式为空的情况吗

$item_arr['formats'] = (isset($item_arr['formats']))?$item_arr['formats']:"";

首先,你的问题是错误的。如果你有
注意:未定义的索引:第39行的C:\xampp\htdocs\playit2\scripts\session.php格式
错误。我猜这是关于
数组推送($My_items,$item_arr['product_id'],$item_arr['formats'])

答案本身几乎就是您所得到的错误。数组
$item\u arr
中不存在键
格式

最好通过执行以下操作进行检查:

array\u push($my\u items,$item\u arr['product\u id'],(isset($item\u arr['formats'])?$item\u arr['formats']:null)


这样,如果不存在格式值,格式值将设置为
null

错误是不言自明的…索引“格式”在
$item\u arr
中不存在。请尝试在
$item\u arr
上打印()。