in_array function Problem

时间:2016-03-13 作者:Domeniko

我正在编写一个自定义插件,它将对特定的管理员用户名执行不同的操作。

所以管理员可以通过可重复的文本字段在后端的插件设置页面中选择两个管理员用户名(Im使用管理员页面框架插件生成后端设置页面-Link to Plugin on Wordpress Repository )

然后在插件函数文件中,我有一个下面的代码,以确定我的自定义插件设置中是否存在登录的管理员用户名,如果存在,则执行一些特定的操作,如果不执行其他操作等。。

  function specific_admin_usernames_function() {

  global $current_user;
  get_currentuserinfo();
  $current_logged_in_user = $current_user->user_login;

  $specific_admin_usernames = AdminPageFramework::getOption( \'MyCustomClassforAdminPageFramework\', array( \'custom_section_options\', \'specific_admin_usernames\' ));
  $specific_admin_usernames_imploded = implode($master_admin_usernames);

  if ( $current_logged_in_user !== in_array($current_logged_in_user, $master_admin_usernames)  ){
    // Do Something  
  }

 }
若我在插件中只提交一个管理员用户名,那个么效果很好,问题是当我通过可重复字段提交多个用户名时。我尝试了array,array\\u key\\u中存在的函数,但没有一个对我有用。

我需要实现的是,检查并确保登录的管理员用户名不存在于插件设置特定的管理员用户名列表中,但到目前为止,我无法使其工作。

有什么想法吗?

谢谢:)

1 个回复
最合适的回答,由SO网友:frogg3862 整理而成

我认为$specific_admin_usernames 是一个数组,所以不需要这一行$specific_admin_usernames_imploded = implode($master_admin_usernames);

你的if语句也有点倒退。PHP的in_array( $needle, $haystack) 不需要$current_logged_in_user !== 部分尝试:

if ( in_array($current_logged_in_user, $master_admin_usernames)  ){
    // this runs when the current user is IN the master list 
}

相关推荐