从json提取数据时PHP处理错误消息

从json提取数据时PHP处理错误消息,php,json,Php,Json,我有一个简单的问题。我有不同的returnvalues(JSON),但每个类都有一个类。如果json中没有包含值,我会收到一条错误消息:注意:未定义索引 如何获取查询,但没有错误消息。如果未指定值,例如,应输入-1 JSON: PHP: $return=json\u decode($file,true); $back=array(); $array=array(); 对于($i=0;$i

我有一个简单的问题。我有不同的returnvalues(JSON),但每个类都有一个类。如果json中没有包含值,我会收到一条错误消息:注意:未定义索引 如何获取查询,但没有错误消息。如果未指定值,例如,应输入-1

JSON:

PHP:

$return=json\u decode($file,true);
$back=array();
$array=array();
对于($i=0;$i<100;$i++){
$array[]=$return['result'][$i];
//$back[]=新的GetMatchesForTrainstationSearch($array[$i]);
}
echo$input['不在json中的东西'];
如果您试图访问的索引不存在,则可以选择:

for ($i = 0; $i < 100; $i++) {
    if (!isset($return['result'][$i])) {
        continue;
    }
    $array[] = $return['result'][$i];
}
($i=0;$i<100;$i++)的
{
if(!isset($return['result'][$i])){
继续;
}
$array[]=$return['result'][$i];
}
前面的答案很好。 我可以补充一点,您可以通过使用-loop避免“未定义索引”错误,它将只通过数组中存在的索引执行:

$return = json_decode($file, true);
if (json_last_error() === JSON_ERROR_NONE) {
return 'error msg or msg type';
}

$result = [];
if (is_array($return))
{
    foreach($return as $k => $v)
    {
    //use it as $return[$k] = $v; 
     if ($v>0) $result[] = $v;

     return $result;
    }
}

return 'error';
for ($i = 0; $i < 100; $i++) {
    if (!isset($return['result'][$i])) {
        continue;
    }
    $array[] = $return['result'][$i];
}
$return = json_decode($file, true);
if (json_last_error() === JSON_ERROR_NONE) {
return 'error msg or msg type';
}

$result = [];
if (is_array($return))
{
    foreach($return as $k => $v)
    {
    //use it as $return[$k] = $v; 
     if ($v>0) $result[] = $v;

     return $result;
    }
}

return 'error';