【发布时间】:2019-04-01 11:01:25
【问题描述】:
我有一组术语:
$arr = [
'black',
'white and black',
'lion',
'fast',
'zebra',
'lion is fast',
'zebra is white'
];
我想根据特定的句子过滤这个数组,例如:
zebra is white and black, and lion is fast
我尝试使用strpos 和一些正则表达式函数,但没有得到预期的结果。我期望的是在列表中获得minimum 的项目数量,这些项目与 IN ORDER 句子的部分匹配,这将是:
[
'white and black',
'zebra',
'lion is fast'
]
这样我可以将结果以匹配句子中的部分分隔为:
\zebra\ is \white and black\, and \lion is fast\
并忽略数组中的其他项目,因为它们不完全匹配。
你能引导我找到正确的方法吗?
【问题讨论】:
-
请编辑问题以添加您已经尝试过的代码 sn-ps。
-
这是一个遍历数组项的循环,并试图在句子中'strpos'它们,很明显列表中的其他一些项是匹配的,例如
black和lion...无论如何我都会发布它。 -
预期输出是什么?您有两个带有
lion的项目都应该在输出中? -
我的问题
<<<<<-----中的预期输出旁边只有箭头,不,只有lion is fast应该匹配,因为它是匹配的完整术语,而不是仅lion。
标签: php arrays substring string-matching