检查变量是否存在于特定的数组键(PHP, MYSQLI)


Check if variable exist in specific array key (PHP, MYSQLI)

EDIT: SOLVED -按预期工作。问题是$search变量。谢谢你的帮助。

我有一个典型的WHILE看起来像这样:

while ($row = $result->fetch_assoc())

在我的$row中,我有一个user_name键,看起来像$row["user_name"]。

我有一个变量叫做$search

理论上,$search可以在$row数组的另一个键中,例如,它也可以在$row["user_id"]中。

我试图使用stripos来查看是否有一个非大小写敏感的实例,其中$search是"like",或者在关键字中,$row["user_name"]。

我甚至尝试将$row["user_name"]存储在一个单独的变量中。

if(stripos($row["user_id"],$search) !== false){
echo("working");
}

这从来没有发生过。请帮助!

编辑:让我换个说法。

我所需要做的就是看看$row["user_name"]是否包含字符串变量$search中的内容。

我已经尝试将$row["user_name"]转换为数组,字符串等,并尝试in_array和stripos,没有任何工作

下面可以:

if (stripos("hey you guys","guys")){
    echo("worked");
    }

但我需要的是

if (stripos($row["user_name"],$search)){
    echo("worked");
    }

编辑:Var_dump看起来是这样的Array (2) {["user_id"]=> string(3)"133" ["user_name"]=> string(3)"mrp"}

编辑:我已经验证了$row["user_name"]和$search都是字符串,所以我没有得到这个问题。

<?php
    $search = 'bar';
    $row = array('id' => 'fOo', 'name' => 'BAr', 'troll' => 'zer');
    // Method 1: preg_match
    $ret = (bool)preg_match('`(' . implode('|', array_values($row)) . ')`i', $search);
    // Method 2: array_search
    $ret = array_search(strtolower($search), array_map('strtolower', $row)) !== false;
    if ($ret) {
      echo 'found';
    } else {
      echo 'not found';
    }
?>

当您使用fetch_assoc时,它返回的不是数组,而是对象。所以尝试不同的语法:

stripos($row->user_id, $search) 
$string = str_replace($search,"",$row['user_id']);
$ctr = count($string);
   if($ctr>0) {echo 'found!';}
   else {echo 'not found!';}