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

Php 如果值存在,则返回数组的键,php,arrays,optimization,Php,Arrays,Optimization,检查变量是否作为其值存在于数组中并返回其键的最快方法是什么 例如: $myArray = [ "test" => 1, "test2" = 2, "test3" = 3]; $var = [1,6,7,8,9]; 我需要的是如果($var在$myArray中)返回(在本例中)测试 不做两个循环就可以吗? 在_array()中是否有类似于的函数可以在找到值时返回该值的键?您可以使用array\u search foreach($var as $value) { $key = ar

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

例如:

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

$var = [1,6,7,8,9];
我需要的是
如果($var在$myArray中)返回(在本例中)
测试

不做两个循环就可以吗?
在_array()中是否有类似于
的函数可以在找到值时返回该值的键?

您可以使用
array\u search

foreach($var as $value)
{
    $key = array_search($value, $myArray);
    if($key === FALSE)
    {
        //Not Found
    }
    else
    {
        //$key contains the index you want
    }
}
foreach ($var as $row) 
{
   $index_val = array_search($row, $myArray);

  if ($index_val === false) 
  {

     echo "not present";
  } 
 else
 {
     echo "presented";
  }
}

array_search-在数组中搜索给定值,如果成功,则返回相应的键

示例:

$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";
    }
}

您可以使用
array\u search

foreach($var as $value)
{
    $key = array_search($value, $myArray);
    if($key === FALSE)
    {
        //Not Found
    }
    else
    {
        //$key contains the index you want
    }
}
foreach ($var as $row) 
{
   $index_val = array_search($row, $myArray);

  if ($index_val === false) 
  {

     echo "not present";
  } 
 else
 {
     echo "presented";
  }
}

array_search-在数组中搜索给定值,如果成功,则返回相应的键

示例:

$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";
    }
}

您可以使用
array\u search

foreach($var as $value)
{
    $key = array_search($value, $myArray);
    if($key === FALSE)
    {
        //Not Found
    }
    else
    {
        //$key contains the index you want
    }
}
foreach ($var as $row) 
{
   $index_val = array_search($row, $myArray);

  if ($index_val === false) 
  {

     echo "not present";
  } 
 else
 {
     echo "presented";
  }
}
请注意,如果未找到该值,函数将返回
false
,但它也可能返回一个与false相同的值,例如零基数组上的0,因此最好使用
=
运算符,如上面的示例所示


查看更多信息

您可以使用
数组搜索

foreach($var as $value)
{
    $key = array_search($value, $myArray);
    if($key === FALSE)
    {
        //Not Found
    }
    else
    {
        //$key contains the index you want
    }
}
foreach ($var as $row) 
{
   $index_val = array_search($row, $myArray);

  if ($index_val === false) 
  {

     echo "not present";
  } 
 else
 {
     echo "presented";
  }
}
请注意,如果未找到该值,函数将返回
false
,但它也可能返回一个与false相同的值,例如零基数组上的0,因此最好使用
=
运算符,如上面的示例所示


请查看以了解更多信息。不需要使用2loop。
使用“数组相交”。
“array_intersect”将返回两组数组中的公共值
如果要匹配关键点,请使用“数组\u相交\u关键点”

$myArray = array("test" => 1, "test2" => 2, "test3" => 3);

$var = array(1,6,7,8,9);
$intersect=array_intersect($myArray, $var);

var_dump($intersect);
输出:

array(1) {
    ["test"]=> int(1) }

Dnt需要使用2个环路。
使用“数组相交”。
“array_intersect”将返回两组数组中的公共值
如果要匹配关键点,请使用“数组\u相交\u关键点”

$myArray = array("test" => 1, "test2" => 2, "test3" => 3);

$var = array(1,6,7,8,9);
$intersect=array_intersect($myArray, $var);

var_dump($intersect);
输出:

array(1) {
    ["test"]=> int(1) }
使用
array\u search()

使用
array\u search()




编辑时使用array\u search()@Dinidu,同时删除诸如“您好”、“谢谢”等内容。array\u search是我一直在寻找的,谢谢@jothi
var_dump(数组键(数组相交($myArray,$var))@hjpotter92我也想到了这一点,但我的意见是保留这篇文章的原创性。我将在以后的编辑中删除它们。谢谢你的评论。编辑时使用array_search()@Dinidu,同时删除诸如“嗨”、“谢谢”等内容。array_search是我一直在寻找的,谢谢@jothi
var_dump(数组键(数组相交($myArray,$var))@hjpotter92我也想到了这一点,但我的意见是保留这篇文章的原创性。我将在以后的编辑中删除它们。感谢您的评论。虽然此代码可能有助于解决此问题,但提供有关为什么和/或如何回答此问题的其他上下文将显著提高其长期价值。请在您的答案中添加一些解释。尽管此代码可能有助于解决问题,但提供有关其回答问题的原因和/或方式的附加上下文将显著提高其长期价值。请在您的回答中添加一些解释。