通过PHP解析不完整字符串的json

通过PHP解析不完整字符串的json,php,mysql,arrays,json,phpmyadmin,Php,Mysql,Arrays,Json,Phpmyadmin,我正在解析这个json数组,我想把type对象放在新的列type2,这是我的json行中的一行,但我的第二行是deference,我得到一个通知,当我的json中没有type时,我如何为type设置一个条件来跳过这个通知? 这是第1行中我的json,可以: [{"id":"26","answer":[{"option":"3","text":"HIGH"}],"type":"3"}, {"id":"30","answer":[{"option":"3","text":"LOW"}],"type"

我正在解析这个json数组,我想把
type
对象放在新的列
type2
,这是我的json行中的一行,但我的第二行是deference,我得到一个通知,当我的json中没有
type
时,我如何为type设置一个条件来跳过这个通知?
这是第1行中我的json,可以:

[{"id":"26","answer":[{"option":"3","text":"HIGH"}],"type":"3"},
{"id":"30","answer":[{"option":"3","text":"LOW"}],"type":"3"},
{"id":"31","answer":[{"option":"3","text":"LOW"}],"type":"3"}]
这是第2行的json,没有
type
,我得到了两个,,:

[{"id":"26","answer":[{"option":"3","text":"HIGH"}]},
{"id":"30","answer":[{"option":"3","text":"LOW"}]},
{"id":"31","answer":[{"option":"3","text":"LOW"}]]
这是我的代码:

<?php
$con=mysqli_connect("localhost","root","","array");
mysqli_set_charset($con,"utf8");

// Check connection
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

$sql="SELECT `survey_answers`,us_id FROM `user_survey_start`";
if ($result=mysqli_query($con,$sql)){
    while ($row = mysqli_fetch_row($result)){
        $json = $row[0];
        if(!is_null($json)){
            $jason_array = json_decode($json,true);

            // type2
            $type = array();
            foreach ($jason_array as $data) {
            $type[] = $data['type'];
            }
            $types= implode(',',$type);
            $sql2="update user_survey_start set type2='$types' where us_id=".$row[1];//run update sql
            echo $sql2."<br>";
            mysqli_query($con,$sql2);
        }
    }
}
mysqli_close($con);
?>
当您试图使用不存在的数组键时,会出现“未定义索引”消息

当使用不知道密钥是否存在的数组时,需要在尝试使用它之前检查它是否存在

foreach ($jason_array as $data) {
    // If $data doesn't have a key called 'type', you'll get that notice.
    $type[] = $data['type'];
}
让我们使用PHP函数检查密钥是否存在:

foreach ($jason_array as $data) {
    if (array_key_exists('type', $data)) {
        // Now we will only use it if the key 'type' actually exists
        $type[] = $data['type'];
    }
}

阅读有关

的更多信息,您必须检查是否正在获取$type数组值
if(isset($types)&&&$types!=''{$types=内爆(',',$type);}否则{$types='';}
我是PHP新手,你能纠正我的代码吗?你的错误消息与你的查询无关。在使用它之前,只需检查
$data['type']
是否存在。检查php函数是的,已解决,请验证它