有没有更好的方法在php数组中搜索一个或多个neeldes与haystack相匹配? 此代码有效,但不可扩展...
if(in_array('administrator', $user->roles) || in_array('manager', $user->roles)) {
$trusted = TRUE;
}
我知道我可以在 in_array 中使用一个数组,但是如果所有的针都匹配,它似乎只返回true。 例如:
if(in_array(array('administrator','manager'), $user->roles) ) {
$trusted = TRUE;
}
仅当两个针(管理员和经理)与haystack($ user-> roles)匹配时,才会返回true。 或者我在这里遗漏了什么?
答案 0 :(得分:2)
您可能正在寻找array_intersect
。虽然它很方便,但它也有点浪费(因此可以说是不优雅的),所以无论是否使用它都是你的号召。
$trusted = (bool)array_intersect($user->roles, ['administrator', 'manager']);
我将结果数组转换为bool,因为它符合示例的语义(如果找到任何角色,结果将为非空并转换为true
)。