检查两个数组是否包含类似的值

时间:2015-02-09 03:51:01

标签: php

有没有办法检查两个数组是否具有相似的值,注意不相等但相似。类似于mysql与LIKE的内容类似的东西。

topten.txt中的

我有以下几个字: WORKFORCE

在company.txt中我有以下网址: Workforce-Holdings-Ltd

所以基本上我想在company.txt中搜索单词WORKFORCE,结果输出应为Workforce-Holdings-Ltd

是否可以这样做。

我或许想到preg_grep()?

2 个答案:

答案 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