Php 在数组中搜索匹配字符串

Php 在数组中搜索匹配字符串,php,arrays,string,Php,Arrays,String,我正在寻找一个字符串是否以数组值的形式存在于数组中,这是可能的吗?我将如何使用PHP进行此操作?如果您只是想知道它是否存在,请使用,例如: 如果您想知道其对应的密钥,请使用,例如: 给你: 您可以使用PHP函数查看它是否存在,或者查看它在哪里 例如: $a = array('a'=>'dog', 'b'=>'fish'); in_array('dog', $a); //true in_array('cat', $a); //false array_search('dog', $a

我正在寻找一个字符串是否以数组值的形式存在于数组中,这是可能的吗?我将如何使用PHP进行此操作?

如果您只是想知道它是否存在,请使用,例如:

如果您想知道其对应的密钥,请使用,例如:

给你:

您可以使用PHP函数查看它是否存在,或者查看它在哪里

例如:

$a = array('a'=>'dog', 'b'=>'fish');

in_array('dog', $a); //true
in_array('cat', $a); //false

array_search('dog', $a); //'a'
array_search('cat', $a); //false
该函数完全满足您的需要

$index = array_search("string to search for", $array);

顺便说一句,虽然您可能应该像这些优秀的绅士建议的那样,在数组中使用
数组搜索
,但为了让您知道如何进行手动搜索,以防需要进行手动搜索,您也可以这样做:

<?php

   // $arr is the array to be searched, $needle the string to find.
   // $found is true if the string is found, false otherwise.

   $found = false;
   foreach($arr as $key => $value) {
       if($value == $needle) {
           $found = true;
           break;
       }
   }

?>


我知道手动搜索来查找字符串似乎很愚蠢——事实确实如此——但有一天,您可能希望使用数组进行更复杂的操作,因此最好知道如何实际获取每个$key-$value对。

假设我们有以下数组:

<?php
$array = array(
  1 => 'foo',
  2 => 'bar',
  3 => 'baz',
);
?>

如果要检查元素“foo”是否在数组中,可以这样做

<?php
if(in_array('foo', $array)) {
  // in array...
}else{
  // not in array...
}
?>

如果要获取“foo”的数组索引,可以执行以下操作:

<?php
$key = array_search('foo', $array);
?>

此外,这些函数中参数顺序的一个简单规则是:“针,然后是干草堆”;你要找的东西应该放在第一位,第二位。

可能的重复:
<?php
if(in_array('foo', $array)) {
  // in array...
}else{
  // not in array...
}
?>
<?php
$key = array_search('foo', $array);
?>