数组中的PHP数组搜索

时间:2015-12-27 16:34:40

标签: php arrays string-matching

$keywords = array('red', 'blue', 'yellow', 'green', 'orange', 'white');

$strings = array(
'She had a pink dress',
'I have a white chocolate',
'I have a green balloon',
'I have a chocolate shirt',
'He had a new yellow book',
'We have many blue boxes',
'I have a magenta tie');

实际上strings数组非常庞大(50k +条目)。

运行搜索和提取匹配字符串的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

最好的方法是使用array_filter()

$filtered_array = array_filter($strings,'filter');

function filter($a)
{
    $keywords = array('red', 'blue', 'yellow', 'green', 'orange', 'white');

    foreach ($keywords as $k)
    {
        if (stripos($a,$k) !== FALSE)
        {
            return TRUE;
        }
    }

    return FALSE;
}

答案 1 :(得分:4)

使用core_kernel过滤-w A数组 将字符串拆分为数组,然后修剪每个单词,并使用array_filter检查单词数组是否包含$strings中的任何一个。

array_intersect