Home » Php » arrays – PHP if in_array for multiple values

arrays – PHP if in_array for multiple values

Posted by: admin July 12, 2020 Leave a comment

Questions:

I have an array that is generated with anywhere between 3 and 12 values, it generates the array from account information;

$result = $ad->user()->groups($user['username']);

I want to check this array for multiple values (around 4 or 5) and if any of them are in it do what’s inside the if, I can do it for one value pretty easily via:

if (in_array("abc",$result)) {  $this->login_session($user); }

Is there a simple way to check this one array for multiple values in it other than consecutive ORs:

    if (in_array("abc",$result) || in_array("123",$result) || in_array("def",$result) || in_array("456",$result) ) {  
    $this->login_session($user); 
    }
How to&Answers:

Try and see if this is helpful:

if(array_intersect($result, array('abc', '123', 'def'))) {
  $this->login_session($user);
}

Answer:

This should be what you are after:

$a = array(1,2,3,4,5);

$b = array(6,8);

function is_in_array($needle, $haystack) {

    foreach ($needle as $stack) {

        if (in_array($stack, $haystack)) {
             return true;
        }
    }

    return false;
}

var_dump(is_in_array($b, $a));

Basically loops through needle and runs an in array of it on the haystack. returns true once something is found, else it returns false.