在php中查找字符串数组中字符串的开头
我知道我们有php in_数组函数 但我正在寻找一种方法,在字符串数组中查找与特定字符串开头匹配的值 例如,查找在php中查找字符串数组中字符串的开头,php,Php,我知道我们有php in_数组函数 但我正在寻找一种方法,在字符串数组中查找与特定字符串开头匹配的值 例如,查找 $search_string = '<div>1</div>'; $search_string='1'; 在这样的数组中 $array = ( 'sample' => '<div>1</div><p>fish food</p>', 'sample2' => '<div>
$search_string = '<div>1</div>';
$search_string='1';
在这样的数组中
$array = (
'sample' => '<div>1</div><p>fish food</p>',
'sample2' => '<div>2</div><p>swine</p>
);
$array=(
“样本”=>“1鱼食”,
“样本2”=>“2猪
);
这有意义吗?试试或者。为什么不循环遍历数组,用正则表达式、strstrstr或substr(…)=$search\u string进行检查
$res = "";
foreach($array as $key => $value) {
if(substr(0, strlen($search_string)-1, $value) == $search_string) {
$res = $key;
break;
}
}
您可以在数组的所有行上循环,并在每个字符串上使用
strpos
;有点像这样:
$search_string = '<div>1</div>';
$array = array(
'sample' => '<div>1</div><p>fish food</p>',
'sample2' => '<div>2</div><p>swine</p>'
);
foreach ($array as $key => $string) {
if (strpos($string, $search_string) === 0) {
var_dump($key);
}
}
或者也可以这样做: 返回由 输入数组中 匹配给定的模式 例如:
$result = preg_grep('/^' . preg_quote($search_string, '/') . '/', $array);
var_dump($result);
(别忘了使用!)
将为您提供:
array
'sample' => string '<div>1</div><p>fish food</p>' (length=28)
数组
“样本”=>字符串“1鱼食”(长度=28)
请注意,通过这种方式,您不会得到键,而只会得到行的内容。如果您只需要查找
$array
中的任何字符串是否以$search\u string
开头(基本上是一种检查字符串开头的替代方法),您还可以使用:
Yo Palantir,我真的为你感到高兴,伊玛让你说完了,但Ionut有史以来最好的答案之一@意象学家,真的吗?你指的是我对这个问题的回答还是另一个?我决定使用strpos,因为我认为它比正则表达式更有效,而且我对字符串有很大的控制权
array
'sample' => string '<div>1</div><p>fish food</p>' (length=28)
array_reduce($array, function ($contains, $item) use ($search_string) {
return $contains = $contains || (strpos($search_string, $item) === 0);
}, false);