我正在寻找,以检查字符串是否存在,因为数组中的数组值是可能的,我将如何使用PHP?
答案 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_array
或array_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”;你要找的东西应该是第一个,你要找的是第二个。