【问题标题】:Retrieve the value of a key from a array从数组中检索键的值
【发布时间】:2020-02-10 11:32:54
【问题描述】:

感谢 discord API,我设法生成了一个表,其中不同的角色标识符分配给了不同的键。但是,由于条件,我希望根据所选标识符返回文本,但我做不到。我使用了 json_decode 函数,它在 json 中返回一个数组。

谨此

例子:

代码:

  $json_context = stream_context_create($json_options);
  $userapi = apiRequest($apiURLBase);
  $guildapi = apiRequest($apiURLBase2);
  if(session('access_token')) {
    $json_get = file_get_contents('https://discordapp.com/api/guilds/538087318284795905/members/'. $userapi->id .'', false, $json_context);
    $json_decode  = json_decode($json_get, true);
    foreach($guildapi as $guild) {
      print_r($guild->name);
    }
    echo '<h3>Roles</h3>';
    echo '<pre>';
    print_r($json_decode);
    // This condition doesn't work 
    if($json_decode['roles'] == '581822046087020555') {
        echo 'Vous êtes premium !';
    } else {
        echo 'Vous n\'êtes pas premium !';
    }
    echo '</pre>';
} else {
    echo '<h2>Roles</h2>';
    echo '<pre>';
    echo 'Veuillez vous connectez pour voir vos rôles !';
}

【问题讨论】:

    标签: php arrays json key discord


    【解决方案1】:

    由于rolesarray,你应该检查所需的角色是否是in_array

    echo '<h3>Roles</h3>';
    // ...
    if (in_array('581822046087020555', $json_decode['roles'])) {
        echo 'Vous êtes premium !';
    } else {
        echo 'Vous n\'êtes pas premium !';
    }
    

    另外,如果你要输出每个角色,你可以遍历你的数组并检查当前的迭代值是否等于要求:

    echo '<h3>Roles</h3>';
    // ...
    foreach ($json_decode['roles'] as $role) {
        echo 'Role is ' . $role . '<br />';
        if ('581822046087020555' === $role) {
            // do something
        }
    }
    

    【讨论】:

      【解决方案2】:

      因为它是一个数组 你可以使用 foreach 来获取数组的所有值

      foreach($json_decode['roles'] as $role){
       if($role == "581822046087020555"){
        echo 'Vous êtes premium !';
       } else {
        echo 'Vous n\'êtes pas premium !';
       }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-25
        • 2018-12-15
        • 2015-08-07
        • 2011-11-15
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        相关资源
        最近更新 更多