Php 在数组中搜索匹配字符串
我正在寻找一个字符串是否以数组值的形式存在于数组中,这是可能的吗?我将如何使用PHP进行此操作?如果您只是想知道它是否存在,请使用,例如: 如果您想知道其对应的密钥,请使用,例如: 给你: 您可以使用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
$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);
?>