Php 从字符串中提取数组中找到的值

Php 从字符串中提取数组中找到的值,php,arrays,Php,Arrays,我被卡住了。我想做的是:在$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){

我被卡住了。我想做的是:在$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){
?
}
如果有人能帮我做这件事,我将不胜感激

非常感谢Linda有一个返回布尔值的函数

或者,如果您想检查数组中的一个元素是否存在于描述中,可能需要对它们进行迭代

foreach($array as element){
  if(preg_match("#".$element."#", $description){
   echo "found";
  }
}
试试这个

if(在数组中($str,$array)){ 回显“它存在”;}其他{ 回音“不存在”;}


如果您的问题措辞正确,并且确实在搜索字符串,则应尝试以下操作:

function getExtractedValue($a, $description) {
    $results = array();
    foreach($a as $array_item) {
        if (strpos($array_item, $description) !== FALSE) {
            $results[] = $array_item;
        }
    }
    return $results;
}

函数将从字符串返回匹配短语的数组。

最好只创建一次数组,而不是在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进行不区分大小写的搜索)。看见如果字符串存在,它将返回数组中的匹配值:

function getExtractedValue($a,$description) {
   foreach($a as $value) {
       if (strpos($description, $value) !== false) {
           return $value;
       }
   }
   return false;
}

在数组中
数组搜索
您希望得到什么结果?例如,如果描述为“它是1:250对比度和6000 lm”。我需要$a变量来提取1:250,以此类推。但我认为数组搜索是我正在寻找的for@viakondratiuk谢谢,array_search我想会的trick@user626342
$description
是您在问题中指出的字符串吗?用户正在搜索字符串,而不是数组用户正在搜索字符串,而不是数组用户正在搜索代码。奇怪的是,我确实通过在数组中查找返回了值,而它可以通过
$value
返回。