如何检查3个数组是否包含特定值?

时间:2017-11-04 16:55:54

标签: php arrays

我有3个数组,我想检查一个特定值是否在任何数组中。

例如:

$vipgold = array("tchan_c", "drbugs", "thesecondunicorn");
$vipsilver = array("bakterhaz", "sojmosicsaba", "andreja1987");
$vipbronze = array("the_camel", "teoriachaosu", "x_x_ultraslan_x_x" );


if (!in_array($login, $vipgold or $vipsilver or $vipbronze)){  // if not admin throw error and exit

$message = $pts->kocolor."Sorry but this feature avalaible only for VIP members. ";
$aseco->client->query('ChatSendServerMessageToLogin', $message, $login);

return;

那么如何检查$login$vipgold$vipsilver中是否存在$vipbronze

2 个答案:

答案 0 :(得分:2)

您可以使用array_merge将两个数组合并在一起,然后将结果传递给in_array

$vipgold = array("tchan_c", "drbugs", "thesecondunicorn");
$vipsilver = array("bakterhaz", "sojmosicsaba", "andreja1987");

if (in_array($login, array_merge($vipsilver, $vipgold))) {
  ...
}

编辑:刚看到你编辑了你的问题也包含了$vipbronze数组 - 你可以将任意数量的参数传递给array_merge,所以如果你想要的话,可以添加它检查所有三个数组。

答案 1 :(得分:1)

尝试以下方法:

if(!in_array($login, $vipbronze) || !in_array($login, $vipgold) || in_array($login, $vipsilver))
{
    //YOUR CODE HERE
}

这可以使用多个in_array来分别搜索arayys中的值。