从string中提取数组中的值

时间:2013-12-10 07:55:32

标签: 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){
    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){
?
}

如果有人能帮助我,我会非常非常感激。

非常感谢琳达

4 个答案:

答案 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'不存在'; }