AleXzpm AleXzpm - 4 months ago 12
PHP Question

return key of array if value is present PHP

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?

Answer

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