我从关键字列表($ keywords)中提取多个值($ arr)。后来我使用strpos来检查文档中是否存在该关键字。
我可以复制整个代码并逐个手动添加每个$ arr,如:strpos($ element,$ arr [0]); strpos($元件,$ ARR [1]); strpos($元件,$ ARR [2]);.
任何人都可以帮我设置它,这样我就不用那么长时间了。让我们说我需要总共20美元的支票。那将是$ arr [0]到$ arr [19]。
<?php
$str= "$keywords";
$arr=explode(",",$str);
// print_r($arr);
$data = file($_SERVER['DOCUMENT_ROOT'].'/posts.txt');
$data=str_replace(array('<', '>', '\\', '/', '='), "", $data);
foreach($data as $element)
{
$element = trim($element);
$check_keyword = strpos($element,$arr[0]);
if ($check_keyword !== false) {
$pieces = explode("|", $element);
echo "
" . $pieces[0] . "
<a href=/blog/" . $pieces[2] . "/" . $pieces[3] . "/ ><b><font color=#21b5ec>" . $pieces[4] . "</font></b></a> <br>
";
}
else {
echo "";
}
}
?>
答案 0 :(得分:1)
如果您想针对$arr
检查$element
中的每个值,那么最简单的方法就是使用array_reduce
。
如果您想测试$arr
中的每个值是否在$element
中,您可以使用此功能:
$check_keyword = array_reduce($arr, function ($carry, $item) use($element) {
return $carry && (strpos($element, $item) !== false);
}, true);
如果您只想检查$arr
中的{strong>任何值是否在$element
中,您可以使用此功能:
$check_keyword = array_reduce($arr, function ($carry, $item) use($element) {
return $carry || (strpos($element, $item) !== false);
}, false);