Currently seeking new career opportunities in web development, particularly with Laravel, Hire Me

comparing multiple values against in_array

David Carr

Tutorials PHP & MySQL

Table of Contents

PHP's in_array is useful to determine if an item is in an array but when needing to compare multiple values against in_array no results will be found.

A way round this is to loop through the values and compare each one in turn, this function is pefect that that task:

function isInArray($needle, $haystack) 
{
    foreach ($needle as $stack) {
        if (in_array($stack, $haystack)) {
        	return true;
        }
    }
    return false;
}

This function expects 2 arrays to be passed, it will then loop through the keys and compare them. If no matches are found false is returned.

A quick demo

Here are two arrays, the exclude array is a list of people to exclude.

$people = array(
	'Dave', 
	'Emma', 
	'Terry', 
	'Cath'
);

$exclude = array(
	'emma'
);

Using array_map we can make all items lowercase so case sensativity does not get in the way.

$people = array_map('strtolower', $people);
$exclude = array_map('strtolower', $exclude);

Check if any person from the excludes array is in the people array.

if(isInArray($exclude, $people) == true){
	echo 'people from excludes are in the array $people';
} else {
	echo 'no exclusions';
}

Putting it together

function isInArray($needle, $haystack) 
{
    foreach ($needle as $stack) {
        if (in_array($stack, $haystack)) {
        	return true;
        }
    }
    return false;
}

$people = array(
	'Dave', 
	'Emma', 
	'Terry', 
	'Cath'
);

$exclude = array(
	'emma'
);

$people = array_map('strtolower', $people);
$exclude = array_map('strtolower', $exclude);

if(isInArray($exclude, $people) == true){
	echo 'people from excludes are in the array $people';
} else {
	echo 'no exclusions';
}

 

Laravel Modules Your Logo Your Logo Your Logo

Become a sponsor

Help support the blog so that I can continue creating new content!

Sponsor

My Latest Book

Modular Laravel Book - Laravel: The Modular way

Learn how to build modular applications with Laravel Find out more

Subscribe to my newsletter

Subscribe and get my books and product announcements.

Learn Laravel with Laracasts

Faster Laravel Hosting

© 2006 - 2024 DC Blog. All code MIT license. All rights reserved.