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

时间:2010-08-17 19:07:34

标签: php arrays string

我正在寻找,以检查字符串是否存在,因为数组中的数组值是可能的,我将如何使用PHP?

7 个答案:

答案 0 :(得分:8)

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

$exists = in_array("needle", $haystack);

如果您想知道相应的密钥,请使用array_search(),例如:

$key = array_search("needle", $haystack);
// will return key for found value, or FALSE if not found

答案 1 :(得分:3)

您可以使用PHP的in_array函数查看它是否存在,或array_search查看它的位置。

示例:

$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

答案 2 :(得分:1)

答案 3 :(得分:1)

顺便说一下,虽然您可能应该使用in_arrayarray_search这些优秀的绅士建议,只是让您知道如何进行手动搜索以防万一你需要做一个,你也可以这样做:

<?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 pair。

答案 4 :(得分:0)

答案 5 :(得分:0)

array_search功能完全符合您的要求。

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

答案 6 :(得分:0)

假设我们有这个数组:

<?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);
?>

此外,这些函数中参数顺序的简单规则是:“needle,then haystack”;你要找的东西应该是第一个,你要找的是第二个。