我正在复制我的strpos关键字检查,但我不想

时间:2018-04-28 12:32:14

标签: php arrays strpos

我从关键字列表($ 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 "";
}

}

?>

1 个答案:

答案 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);