doumen5491 2017-02-24 08:59
浏览 87
已采纳

如何在PHP中存储特定的JSON数据并摆脱未定义的索引通知?

I'm developing an app using PHP and I'm fetching data via api endpoint. I was able to get the data I want - a huge chunk of it, found here: https://gist.github.com/kamaelxiii/18ef0c1600330b98717b96db00532d6a

Now my blocker is I just want to get and store the specific ID of a player (look for name : kamaelxiii) my code was able to get the ID but the page also displays this message:

Notice: Undefined index: name in C:\xampp\htdocs\vgapp\index.php on line 230

I'm thinking that this is because I'm looping to the entire included block but not all contains the index name in it. I've tried adding break inside the for loop below but the ID that I'm after is not always the first in the list so there are times that the message above still shows - most of the time.

Here's my line of code that gets the specific ID:

if(is_array($finaljson) || is_object($finaljson)){
foreach ($finaljson['included'] as $key => $value) {
        if($value['attributes']['name'] === $username){
            $userid = $value['id'];
        }
}
  • 写回答

2条回答 默认 最新

  • douyi8732 2017-02-24 09:07
    关注

    If you want to get rid of Notice, Then just use empty() or isset() in your foreach loop's if condition. below is the code.

     if(is_array($finaljson) || is_object($finaljson)){
     foreach ($finaljson['included'] as $key => $value) {
     //you can use empty check 
        if(!empty($value['attributes']['name']) && $value['attributes']['name'] === $username){
                $userid = $value['id'];
        }
    //or you can use isset 
       if(isset($value['attributes']['name']) && $value['attributes']['name'] === $username){
                $userid = $value['id'];
        }
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?