$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 +条目)。
运行搜索和提取匹配字符串仅的最佳方法是什么?
答案 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