有没有办法检查两个数组是否具有相似的值,注意不相等但相似。类似于mysql与LIKE
的内容类似的东西。
我有以下几个字:
WORKFORCE
在company.txt中我有以下网址:
Workforce-Holdings-Ltd
所以基本上我想在company.txt中搜索单词WORKFORCE
,结果输出应为Workforce-Holdings-Ltd
。
是否可以这样做。
我或许想到preg_grep()?
答案 0 :(得分:1)
您无需使用preg匹配。相反,您可以使用strpos:
$result=array();
$a=array('WORKFORCE');
$b=array('Workforce-Holdings-Ltd');
foreach($a as $array1){
foreach($b as $array2){
if (strpos(strtolower($array2),strtolower($array1)) !== false) {
$result[] = 'true';
}
else {
$result[] = 'false';
}
}
}
如果匹配正常,这将为您提供一个数组;如果所有数组元素都匹配,则为false,
答案 1 :(得分:1)
Preg_grep非常适合这种情况。只要您搜索数组值,就可以执行以下操作:
<?php
$companies = [
'acme inc',
'wORkForce-holdings-ltd'
];
$search = 'WORKFORCE';
var_dump(preg_grep('/' . preg_quote($search, '/') . '/i', $companies));
这是一个ideone example。