我被困住了。我想做什么:在$ description字符串中,我想检查是否可以找到不同数组中的任何值。如果任何值匹配,我需要知道每个数组中的哪一个。我想我需要为每个$ a,$ b和$ c做一个函数,但是怎么样,我不知道
if($rowGetDesc = mysqli_query($db_mysqli, "SELECT descFilter FROM tbl_all_prod WHERE lid = 'C2'")){
if (mysqli_num_rows($rowGetDesc) > 0){
while($esk= mysqli_fetch_array($rowGetDesc)){
$description = sanitizingData($esk['descFilter']);
$a = array('1:100','1:250','1:10','2');
$a = getExtractedValue($a,$description);
$b = array('one','five','12');
$b = getExtractedValue($b,$description);
$c = array('6000','8000','500');
$c = getExtractedValue($c,$description);
}
}
}
function getExtractedValue($a,$description){
?
}
如果有人能帮助我,我会非常非常感激。
非常感谢琳达
答案 0 :(得分:0)
有一个php函数返回一个布尔值。
或者如果你想检查数组中的一个元素是否存在于描述中,也许你需要迭代它们
foreach($array as element){
if(preg_match("#".$element."#", $description){
echo "found";
}
}
答案 1 :(得分:0)
如果你的问题是正确的措辞,而且你正在搜索一个字符串,你应该尝试这样的事情:
function getExtractedValue($a, $description) {
$results = array();
foreach($a as $array_item) {
if (strpos($array_item, $description) !== FALSE) {
$results[] = $array_item;
}
}
return $results;
}
该函数将从字符串中返回匹配短语的数组。
答案 2 :(得分:0)
最好只创建一次每个数组,而不是在while循环的每次迭代中创建。 也不建议在循环中使用相同的变量名。
if($rowGetDesc = mysqli_query($db_mysqli, "SELECT descFilter FROM tbl_all_prod WHERE lid = 'C2'")){
if (mysqli_num_rows($rowGetDesc) > 0){
$a = array('1:100','1:250','1:10','2');
$b = array('one','five','12');
$c = array('6000','8000','500');
while($esk= mysqli_fetch_array($rowGetDesc)){
$description = sanitizingData($esk['descFilter']);
$aMatch = getExtractedValue($a,$description);
$bMatch = getExtractedValue($b,$description);
$cMatch = getExtractedValue($c,$description);
}
}
}
使用strpos查找字符串是否存在(或条带不敏感搜索的stripos)。见http://php.net/strpos。如果字符串存在,它将返回数组中的匹配值:
function getExtractedValue($a,$description) {
foreach($a as $value) {
if (strpos($description, $value) !== false) {
return $value;
}
}
return false;
}
答案 3 :(得分:-1)
试试这个..
if(in_array($ str,$ array)){ 回声'它存在'; } else { echo'不存在'; }