douqiao8370 2018-07-17 05:42
浏览 49

php json数组中的未定义错误

I am getting undefined error in this code. I tried isset but it is becoming clumsy..is there any sweet way to handle this piece of code

This works well in php 5.6.30 but throwing errors in php 5.6.36

foreach($response as $key => $value){
$exp_table .= "<tr>";
foreach($fields_arr as $keys => $values){

$exp_table .= "<td>";
if($fields_arr[$keys]["json_subcategory"]==""){
$exp_table .=  $response[$key][$fields_arr[$keys]["api_subcategory"]][$fields_arr[$keys]["field"]];
} 
if($fields_arr[$keys]["api_subcategory"]==""){
$exp_table .=  $response [$key][$fields_arr[$keys]["json_subcategory"]]$fields_arr[$keys]["field"]];
}
if(($fields_arr[$keys]["json_subcategory"]=="") && ($fields_arr[$keys]["api_subcategory"]=="")){
$exp_table .=  $response [$key][$fields_arr[$keys]["field"]];
}

if(($fields_arr[$keys]["json_subcategory"]!="") && ($fields_arr[$keys]     ["api_subcategory"]!="")){
$exp_table .=  $response [$key][$fields_arr[$keys]["json_subcategory"]][$fields_arr[$keys]["api_subcategory"]][$fields_arr[$keys]["field"]];
}
  • 写回答

1条回答 默认 最新

  • doushi5913 2018-07-17 05:57
    关注

    isset will return false on null values. You may try array_key_exists instead

    function checkFields($array, $key)
        {
        if (array_key_exists($key, $array))
            {
            if (is_null($array[$key]))
                return "isNull";
              else
                return "isSet";
            }
        }
    
    foreach($response as $key => $value)
        {
        $exp_table.= "<tr>";
        foreach($fields_arr as $keys => $values)
            {
            $exp_table.= "<td>";
            if (checkFields($fields_arr, $fields_arr[$keys]["json_subcategory"]) == "isNull")
                {
                $exp_table.= $response[$key][$fields_arr[$keys]["api_subcategory"]][$fields_arr[$keys]["field"]];
                }else{
                    //is not SET. else part is use only for testing(optional).
                    }
            }
        }
    
    评论

报告相同问题?