What is the fastest way to check if a variable is present in an array as its value and return the key of it?
Example:
$myArray = [ "test" => 1, "test2" = 2, "test3" = 3];
$var = [1,6,7,8,9];
What I need is if($var is in $myArray) return (in this case) "test".
Is this possible without doing two loops?
Are there any functions like in_array() that returns the key of the value if found?
You can use array_search
foreach($var as $value)
{
$key = array_search($value, $myArray);
if($key === FALSE)
{
//Not Found
}
else
{
//$key contains the index you want
}
}
Be careful, if the value is not found the function will return false but it may also return a value that can be treated the same way as false, like 0 on a zero based array so it's best to use the === operator as shown in my example above
Check the documentation for more
You can use array_search
http://php.net/manual/en/function.array-search.php
array_search — Searches the array for a given value and returns the corresponding key if successful
Example:
$myArray = ["test" => 1, "test2" = 2, "test3" = 3];
$var = [1, 6, 7, 8, 9];
foreach ($var as $i) {
$index = array_search($i, $myArray);
if ($index === false) {
echo "$i is not in the array";
} else {
echo "$i is in the array at index $index";
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With