如果值存在则返回数组的键 PHP

Ale*_*zpm 4 php arrays optimization

检查变量是否作为其值存在于数组中并返回其键的最快方法是什么?

例子:

$myArray = [ "test" => 1, "test2" = 2, "test3" = 3];

$var = [1,6,7,8,9];
Run Code Online (Sandbox Code Playgroud)

我需要的是if($var is in $myArray) return (in this case)“测试”。

这可以不做两个循环吗?是否有类似的函数in_array()返回值的键(如果找到)?

dim*_*cas 7

您可以使用array_search

foreach($var as $value)
{
    $key = array_search($value, $myArray);
    if($key === FALSE)
    {
        //Not Found
    }
    else
    {
        //$key contains the index you want
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果未找到该值,该函数将返回false,但它也可能返回一个可以以与 false 相同的方式处理的值,例如基于零的数组上的 0,因此最好使用运算符,===如上面的示例所示

检查文档了解更多信息