Php 如何检查是否在数组中找到了字符串的某些部分,但这是一个更智能的版本?
我正在编写一个simpe代码,用于查找数组中是否至少有一个字符串字,如下所示: 阵列Php 如何检查是否在数组中找到了字符串的某些部分,但这是一个更智能的版本?,php,arrays,Php,Arrays,我正在编写一个simpe代码,用于查找数组中是否至少有一个字符串字,如下所示: 阵列 $the_array= array("first","second","third"); 代码 if(0 < count(array_intersect(explode(' ', $input_string), $the_array))) { echo 'found'; break; } else {} 或 你现在知道我的第二个问题了 或 在这里找到我的第一句和第二句 代码将回显找到的 我想要
$the_array= array("first","second","third");
代码
if(0 < count(array_intersect(explode(' ', $input_string), $the_array))) {
echo 'found';
break;
} else {}
或
你现在知道我的第二个问题了
或
在这里找到我的第一句和第二句
代码将回显找到的
我想要的解决方案是检查字符串,如
在这里找到我的第一句和第二句
针对下面这样的数组
$the_array=array(“第一秒”、“第三秒”)代码>
并找到echo
。但是,由于字符串第一个和第二个之间存在单词,因此它不会执行此操作
有没有办法达到这样的目的?更“智能”的版本?通过一些测试进行编辑;)
不确定这是否是最好的解决方案,但它可能是解决您问题的方法之一解决方案是:
- 首先使用
explode()
函数拆分$input\u字符串
字符串
$string_components = explode(' ', $input_string);
- 维护布尔值
$标志
,以检查是否在数组中找到字符串的一部分
$flag = false;
if($flag){
echo 'found';
}else{
echo 'not found';
}
- 循环遍历_数组
数组,并在每次迭代中检查数组中的搜索项(单个单词或多个单词)是否存在于原始字符串中
foreach($the_array as $search_val){
$search_components = explode(" ", $search_val);
if(count($search_components) == count(array_intersect($search_components, $string_components))){
$flag = true;
break;
}
}
最后,检查是否在数组中找到字符串的部分
$flag = false;
if($flag){
echo 'found';
}else{
echo 'not found';
}
下面是一个例子:
$the_array= array("first second","third");
$input_string = "find my first and second sentence here";
$string_components = explode(' ', $input_string);
$flag = false;
foreach($the_array as $search_val){
$search_components = explode(" ", $search_val);
if(count($search_components) == count(array_intersect($search_components, $string_components))){
$flag = true;
break;
}
}
if($flag){
echo 'found';
}else{
echo 'not found';
}
我认为您不需要array\u diff\u key
,但可能需要array\u diff
?