我使用以下代码创建此数组:
$ignored = array();
foreach(explode("\n", $_POST["ignored"]) as $ignored2) {
$ignored[] = $ignored2;
}
我想检查数组中的任何项是否是LIKE变量。到目前为止我有这个:
if(in_array($data[6], $ignored)) {
但我不知道如何处理LIKE
答案 0 :(得分:2)
in_array()
没有提供此类比较。您可以按照以下方式创建自己的功能:
<?php
function similar_in_array( $sNeedle , $aHaystack )
{
foreach ($aHaystack as $sKey)
{
if( stripos( strtolower($sKey) , strtolower($sNeedle) ) !== false )
{
return true;
}
}
return false;
}
?>
您可以将此功能用作:
if(similar_in_array($data[6], $ignored)) {
echo "Found"; // ^-search ^--array of items
}else{
echo "Not found";
}
功能参考:
答案 1 :(得分:0)
$ignored = array();
foreach(explode("\n", $_POST["ignored"]) as $ignored2) {
$ignored[] = $ignored2;
if ( preg_match('/^[a-z]+$/i', $ignored2) ) {
//do what you want...
}
}
更新:嗯,我找到了这个答案,可能就是你需要的:
答案 2 :(得分:0)
以下是一种使用customized fairly easily lambda
function http://codepad.org/yAyvPTIq的方法{/ 3>}
$words = array('one','two','three','four');
$otherwords = array('three','four','five','six');
while ($word = array_shift($otherwords)) {
print_r(array_filter($words, like_word($word)));
}
function like_word($word) {
return create_function(
'$a',
'return strtolower($a) == strtolower(' . $word . ');'
);
}
{{3}}
要添加不同的支票,只需向return
添加更多条件即可。要在单个函数调用中执行此操作:
while ($word = array_shift($otherwords)) {
print_r(find_like_word($word, $words));
}
function find_like_word($word, $words) {
return array_filter($words, like_word($word));
}
function like_word($word) {
return create_function(
'$a',
'return strtolower($a) == strtolower(' . $word . ');'
);
}