我的文字区域充满了各种成分;通常采用[数量] [测量] [成分] [附加]格式。例如,一些成分可能是:
1汤匙大蒜,切碎
1杯甜椒,切碎
我希望能够识别每种测量和成分 - 您将如何处理?我的思路是......
// loop thru line by line of textarea
// explode each line by the space thus line[0] would be 1, line[1] tablespoon, line[2] garlic... etc
现在这是我的问题,我不确定什么是有效率的。我是否通过db搜索该测量,成分等来运行每一行[X]?但由于“甜椒”被一个空间隔开,我不会得到一个匹配。
// does line[1] appear in the measurements table?
// does line[2] appear in the ingredients table?
其他人有什么创意解决方案吗?
答案 0 :(得分:0)
将数据分隔为空格而不是另一个分隔符。例如,您可以这样做:
$strRecipe = "1 | tablespoon | bell pepper | minced";
然后你可以使用:
$recipe = explode("|",$strRecipe);
现在您可以通过以下方式访问每个字段:$ recipe [0],$ recipe [1] ETC ETC
答案 1 :(得分:0)
尝试stripos()
找到子字符串而不是explode()
。
$mytext = "1 tablespoon garlic, minced 1 cup bell pepper, chopped"; # or any text
$keyword = "bell pepper"; # or any search term
if (stripos($mytext, $keyword) === false) {
# not found
...
}
else {
# found
...
}
参考
您可以使用explode()
(不推荐),但您也应该在搜索字词中分隔单词,并在数组中查找第一个关键字的出现位置,其中下一个关键字位于数组的下一个元素中,等等。这是不必要的并发症。